【问题标题】:What is the scope of variables in gyp?gyp中变量的范围是什么?
【发布时间】:2013-03-16 07:15:32
【问题描述】:

gyp documentation 记录了'variables' 部分,如下所示:

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

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

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

【问题讨论】:

    标签: chromium gyp


    【解决方案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 在变量扩展之前被解析。因此,您不能在包含路径中使用变量。

    【讨论】:

      猜你喜欢
      • 2021-04-29
      • 1970-01-01
      • 1970-01-01
      • 2012-03-17
      • 2011-04-21
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      • 2015-07-05
      相关资源
      最近更新 更多