的gyp documentation记录了'variables'
部分是这样的:gyp中变量的范围是什么?
“变量”:可以插入并在文件其他各个部分使用 的变量定义。
(强调我的)。 这似乎排除了使用包含的gyp文件中的变量,也排除了包含其他设置变量的gyp文件的可能性。
这是正确的吗?这些变量的范围是什么,以及如何在全局范围内设置变量? 我看到在Chromium中,01设置了很多变量,但Chromium也使用了与gyp
不同的魔术gyp_chromium
脚本。
的gyp documentation记录了'variables'
部分是这样的:gyp中变量的范围是什么?
“变量”:可以插入并在文件其他各个部分使用 的变量定义。
(强调我的)。 这似乎排除了使用包含的gyp文件中的变量,也排除了包含其他设置变量的gyp文件的可能性。
这是正确的吗?这些变量的范围是什么,以及如何在全局范围内设置变量? 我看到在Chromium中,01设置了很多变量,但Chromium也使用了与gyp
不同的魔术gyp_chromium
脚本。
变量的范围是GYP与C++中局部变量的范围非常相似。假设您在variables
字典FOO
中定义变量。在FOO
中定义的变量的范围是字典BAR
,它是FOO
的父亲。你可以在BAR
之内的任何地方使用这些变量,并且不在其外。
你怎么设置全局变量?
了解所描述的规则很容易。将variables
字典添加到gyp脚本的顶级字典中,并在其中定义一些变量。他们将在此脚本中的任何地方可用。
这似乎包含GYP文件中使用的变量排除,并且 也排除包括其他
gyp
文件设置 变量的可能性。
这是不正确的。假设您将include.gypi
包含到generator.gyp
脚本中。如果include.gypi
在其顶级字典中有variables
部分,那么这些变量可以在generator.gyp
的任何地方访问。显然,不在顶级字典中定义的变量将不可访问。
记住includes
是变量扩展之前进行解析。因此,您不能在包含路径中使用变量。