【问题标题】:GYP default value for variable %变量 % 的 GYP 默认值
【发布时间】:2015-03-19 17:32:53
【问题描述】:

我正在尝试使用 GYP,但被定义“默认变量”所困扰

有 2 个文件(一个主文件,一个预计存储公共数据的文件,包含在主文件中:

1) v_common.gypi:

{
    'variables': {
        'mymodule%': "blblblb",
        'mymoduleLibs' : "<(mymodule)/Libs",

    },

    'target_defaults': {

    },
}

2) 我的模块.gyp

{
    'variables':{
    },
    'includes': [
        'v_common.gypi',
    ], # includes

    'targets': [
        {
                'target_name': 'myModule',
                'type': 'none',
                'actions' : [
                    {
                        'action_name': 'create_libs_folder',
                        'inputs': ['one_file'],
                        'outputs':['blabla'],
                        'action': ['mkdir', '<(mymoduleLibs)'],
                    }
                ]

        },
    ], # targets
}

按照我的期望:

  • mymodule 应该获得“blblblb”的值,(只要之前没有在任何地方定义过),

  • 那么我应该可以用它来计算 mymoduleLibs

  • 的值
  • 毕竟 mymoduleLibs 应该可以在 mymodule.gyp

  • 中使用

但是,我只是得到错误 mymodule 是“未定义的变量”。如果我像下面的示例中那样精确定义 mymodyle(没有百分号),一切正常。 :

'variables': {
        'mymodule': "blblblb",
        'mymoduleLibs' : "<(mymodule)/Libs",

    }

有什么想法吗?

【问题讨论】:

    标签: build build-process gyp


    【解决方案1】:

    我发现了问题。这里有描述https://groups.google.com/forum/?fromgroups#!topicsearchin/gyp-developer/default/gyp-developer/1EWXAXe-qWs

    正确的解决方法是在 sub-dict 'variables':{...} 中定义默认变量,以便在扩展其他变量之前对其进行评估,如下所示:

    {
        'variables': {
            'variables': {
                'mymodule%': "blblblb",
             },
            'mymoduleLibs' : "<(mymodule)/Libs",
    
        },
    
        'target_defaults': {
    
        },
    } 
    

    【讨论】:

      猜你喜欢
      • 2011-08-27
      • 2011-09-22
      • 2014-12-15
      • 1970-01-01
      • 2012-06-25
      • 2013-01-17
      • 2019-09-10
      相关资源
      最近更新 更多