Зависимости между разными средами в 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"? Мне нужно, чтобы проект "x86" был построен после завершения "x64".

Я только что обнаружил, что единственный способ настроить ручную зависимость — это метод 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')

Я был бы очень признателен за любую помощь! :)


person user3297254    schedule 11.02.2014    source источник


Ответы (1)


Я думаю, вы должны добавить это после первой цели

ctx.add_group()
person jj99    schedule 02.05.2014