我在 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(),而是程序选择的)。
请您参考如下方法:
这取决于您希望如何从依赖项中生成目标。在最简单的情况下,您只需使用带有源和目标的构建规则:
def build(bld):
bld(
rule = 'cat ${SRC[0].abspath()} > ${TGT}',
source = ['hello.txt', 'there.txt'],
target = 'out.txt'
)
如您所见,out.txt 将通过 cat:ing hello.txt 生成,hello.txt 和there.txt 将被视为目标依赖项。在这里,我在 wscript 中对依赖项进行了硬编码,但您当然会调用生成依赖项列表的程序来使用它。
