1

gyp文档记录了'variables'这样的部分:

'variables':可以在文件的各个其他部分中插入和使用的变量的定义。

(强调我的)。这似乎排除了使用包含的 gyp 文件中的变量,也排除了包含其他设置变量的 gyp 文件的可能性。

这个对吗?这些变量的作用域是什么,如何全局设置变量?我看到在 Chromium 中,build/common.gypi设置了很多变量,但 Chromium 也使用了gyp_chromium不同于 plain 的魔法脚本gyp

4

1 回答 1

1

变量的作用域 GYP 与 C++ 中的局部变量的作用域非常相似。假设您在variables字典中定义了一个变量FOO。中定义的变量的范围FOO是字典BAR,它是FOO. 您可以在内部的任何地方使用这些变量,也可以在BAR它之外的任何地方使用这些变量。


你如何设置全局变量?

了解所描述的规则非常容易。将variables字典添加到 gyp 脚本的顶级字典并在其中定义一些变量。它们将在此脚本中的任何位置1可用。


这似乎排除了使用包含的 gyp 文件中的变量,也排除了包含其他gyp设置变量的文件的可能性。

这不是真的。假设您包含include.gypigenerator.gyp脚本中。如果它的顶级字典中include.gypivariables部分,则这些变量可以在generator.gyp. 显然,不在顶级字典中定义的变量将无法访问。


1请记住,includes在变量扩展之前进行解析。因此,您不能在包含路径中使用变量。

于 2013-08-08T05:48:43.090 回答