Scons构建系统:如何通过命令行匹配指定目标子集?
在Scons中无需修改构建脚本即可构建目标子集的方法
直接使用命令行通配符(推荐方案)
- 若你的shell支持递归通配符
**(如Bash需先执行shopt -s globstar开启该特性),直接运行:
Shell会自动展开当前目录及所有子目录下的scons **/*.png.png文件路径,Scons接收后会逐一构建这些目标文件。 - 若shell不支持
**递归匹配,可结合find命令批量传递目标路径:
这条命令会遍历当前目录下所有find . -type f -name "*.png" | xargs scons.png文件,并将路径批量传给Scons执行构建。
利用Scons内置通配符处理
如果想让Scons自行解析通配符(避免shell提前展开路径),可以用单引号包裹通配符表达式:
scons '**/*.png'
注意:部分旧版本Scons对递归通配符**支持有限,若遇到问题可降级为逐层级匹配,比如scons '*/*.png'。
常见误区说明
不要执行scons . **/*.png,命令中的.会触发Scons构建所有默认目标,之后再额外处理.png文件,会导致重复构建或执行不必要的任务,直接指定目标子集即可。
内容的提问来源于stack exchange,提问作者p.py
相关产品推荐
相关产品推荐

