2

我正在尝试使用 GYP 并被定义为“默认变量”

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

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应该获得“blblblb”的值,(只要它之前没有在任何地方定义过),

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

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

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

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

    }

有任何想法吗?

4

1 回答 1

2

我发现了问题。它在这里描述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': {

    },
} 
于 2015-03-25T08:36:14.727 回答