的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
是變量擴展之前進行解析。因此,您不能在包含路徑中使用變量。