使用waf,如何将构建目录中的文件作为另一个构建命令的输入?

时间:2015-10-12 13:05:40

标签: python build waf

我使用waf作为我项目的构建系统,我需要在构建过程中执行两个连续的shell命令,其中第一个命令的输出文件应该作为输入文件给出命令-line到第二个命令。根据waf书,执行OS命令的一般模板如下所示:

bld(rule='cp ${SRC} ${TGT}', source='input.txt', target='output.txt')

使用此模板,目标目录将自动添加到目标文件中。但目前尚不清楚如何在以后的命令中将该文件称为输入文件。

Linux OS,Python版本2.7,waf版本1.8.9

如何做到这一点?

1 个答案:

答案 0 :(得分:2)

通常你只需要使用目标文件。大多数WAF工具尝试首先在构建目录和源目录中查找文件。如果没有找到它是建立的东西。所以你可以这样做:

rule = 'cp ${SRC} ${TGT}'

bld(rule=rule, source='input.txt', target='output.txt')
bld(rule=rule, source='output.txt', target='output2.txt')

你会得到类似的东西:

[1/2] output.txt: input.txt -> build/output.txt
[2/2] output2.txt: build/output.txt -> build/output2.txt

WAF从构建和源目录中查找相对路径。