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

标签 python build waf

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

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

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

Linux操作系统,Python 2.7版本,waf 1.8.9版本

如何做到这一点?

最佳答案

通常你只需要使用目标文件。大多数 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 从构建目录和源目录中查找相对路径。

关于python - 使用 waf,如何将构建目录中的文件引用为另一个构建命令的输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33081909/

相关文章:

python - botocore.exceptions.WaiterError : Waiter StackCreateComplete failed: Max attempts exceeded

c - Waf:为多个文件创建任务

docker-compose 设置中已编译组件的 Docker 开发工作流程

msbuild - 有没有办法让程序检测它是否被 MSBuild 调用?

c++ - Waf 生成 Visual Studio 项目?

python - 类型错误 : 'str' does not support the buffer interface in 3. 4.1

python - 使用 lxml 和 iterparse() 解析一个大的 (+- 1Gb) XML 文件

python - Scrapy管道到mysql错误1241

java - 仅在 Maven 父构建中构建子快照模块

android - 将 Android 源移动到区分大小写的图像中