2

我有一个目标waf,它取决于多个其他文件。有一个程序列出了这些依赖项,我想使用它,并传递给waf. 即,如果我有一个目标T,则有一个程序列出了T. 但我不清楚如何将其传递给bld.add_manual_dependency().

作为依赖项的单个文件似乎工作正常:

bld.add_manual_dependency(bld.path.find_or_declare('T'), bld.path.find_resource('Dep1'))

但是,如果我将列表作为第二个参数传递,似乎可以接受,但不起作用!。我想知道如何传递多个文件(不是ant_glob(),而是由程序选择)。

4

1 回答 1

1

这取决于您希望如何从依赖项中生成目标。在最简单的情况下,您只需使用带有源和目标的构建规则:

def build(bld):
    bld(
        rule = 'cat ${SRC[0].abspath()} > ${TGT}',
        source = ['hello.txt', 'there.txt'],
        target = 'out.txt'
    )

如您所见,out.txt将通过 cat:inghello.txt生成它和两者hello.txtthere.txt并将被视为目标依赖项。在这里,我在 wscript 中对依赖项进行了硬编码,但您当然会调用生成依赖项列表的程序作为使用它。

于 2015-09-04T12:03:19.277 回答