变量%的GYP默认值

时间:2015-03-19 17:32:53

标签: build build-process gyp

我试图与GYP玩游戏并且坚持定义"默认变量"

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

1)v_common.gypi:

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

    },

    'target_defaults': {

    },
}

2)mymodule.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 应该获得&#34; blblblb&#34;的价值(就以前在任何地方都没有定义),

  • 然后我应该可以将它用于 mymoduleLibs的计算值

  • 并且毕竟 mymoduleLibs 应该可以在 mymodule.gyp中使用

但是,我只是得到错误 mymodule 是&#34;未定义的变量&#34;。如果我像下面的例子中那样对mymodyle进行精确定义(withot百分号),一切正常。 :

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

    }

任何想法?

1 个答案:

答案 0 :(得分:1)

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

正确的workaroud是在sub-dict'变量'中定义默认变量:{...},因此在扩展其他变量之前会对它们进行评估,如下所示:

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

    },

    'target_defaults': {

    },
}