2013-03-16 128 views
1

gyp documentation記錄了'variables'部分是這樣的:gyp中變量的範圍是什麼?

「變量」:可以插入並在文件其他各個部分使用 的變量定義。

(強調我的)。 這似乎排除了使用包含的gyp文件中的變量,也排除了包含其他設置變量的gyp文件的可能性。

這是正確的嗎?這些變量的範圍是什麼,以及如何在全局範圍內設置變量? 我看到在Chromium中,01​​設置了很多變量,但Chromium也使用了與gyp不同的魔術gyp_chromium腳本。

回答

1

變量的範圍是GYP與C++中局部變量的範圍非常相似。假設您在variables字典FOO中定義變量。在FOO中定義的變量的範圍是字典BAR,它是FOO的父親。你可以在BAR之內的任何地方使用這些變量,並且不在其外。


你怎麼設置全局變量?

瞭解所描述的規則很容易。將variables字典添加到gyp腳本的頂級字典中,並在其中定義一些變量。他們將在此腳本中的任何地方可用。


這似乎包含GYP文件中使用的變量排除,並且 也排除包括其他gyp文件設置 變量的可能性。

這是不正確的。假設您將include.gypi包含到generator.gyp腳本中。如果include.gypi在其頂級字典中有variables部分,那麼這些變量可以在generator.gyp的任何地方訪問。顯然,不在頂級字典中定義的變量將不可訪問。


記住includes是變量擴展之前進行解析。因此,您不能在包含路徑中使用變量。