Waf中不同环境之间的依赖关系?

时间:2014-02-11 13:24:25

标签: dependencies waf

我正在尝试使用Waf + MSVC构建两个项目:

top = '.'
out = 'build'

def configure(conf):
    conf.setenv('x86')
    conf.env['MSVC_TARGETS'] = 'x86'
    conf.load('compiler_cxx')

    conf.setenv('x64')
    conf.env['MSVC_TARGETS'] = 'x86_amd64'
    conf.load('compiler_cxx')

def options(opt):
    opt.load('compiler_cxx')

def build(ctx):
    ctx.env = ctx.all_envs['x86']
    ctx.program(source='x86.cpp', target='x86', name='x86')

    ctx.env = ctx.all_envs['x64']
    ctx.program(source='x64.cpp', target='x64', name='x64')

正如您所看到的,我使用不同的环境构建了32位和64位项目。我的问题是:如何在“x64”和“x86”项目之间设置依赖关系?我需要在“x64”完成后构建“x86”项目。

我刚刚发现设置手动依赖项的唯一方法是add_manual_dependency方法,但似乎只能在单一环境中使用它。了解如何实现“use = ['xxx']”方法也很棒,这种方法适用于静态库,但对于我的情况。是否有可能以这种方式拥有自动依赖?例如:

def build(ctx):
    ctx.env = ctx.all_envs['x86']
    ctx.program(source='x86.cpp', target='x86', name='x86', use='x64_from_x64_environment')

    ctx.env = ctx.all_envs['x64']
    ctx.program(source='x64.cpp', target='x64', name='x64')

我真的很感激任何帮助! :)

1 个答案:

答案 0 :(得分:0)

我认为你必须在第一个目标之后添加它

ctx.add_group()
相关问题