gyp中变量的范围是什么?

时间:2013-03-16 07:15:33

标签: chromium gyp

gyp documentation文档'variables'部分如下:

  

'变量':可以插值的变量的定义   用于文件的其他各个部分。

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

这是对的吗?这些变量的范围是什么,以及如何在全局设置变量? 我看到在Chromium中,build/common.gypi设置了很多变量,但Chromium也使用了与普通gyp_chromium不同的魔术gyp脚本。

1 个答案:

答案 0 :(得分:1)

变量的范围是GYP与C ++中局部变量的范围非常相似。假设您在variables字典FOO中定义变量。 FOO中定义的变量范围是BAR的父级字典FOO。您可以在BAR内的任何位置使用这些变量,而不在其外部。


  

如何全局设置变量?

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


  

这似乎排除了使用包含的gyp文件中的变量,和   还排除了包含其他gyp文件的可能性   变量

事实并非如此。假设您将include.gypi包含在generator.gyp脚本中。如果include.gypi的顶级字典中包含variables部分,则generator.gyp中的任何位置都可以访问这些变量。显然,不能在顶级词典中定义的变量是不可访问的。


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