Scons:将多个目标合并为一个

Scons: combining multiple targets into one

我的项目中有几个环境。 当我使用目标 target1 构建一些二进制文件和共享库时。

我想使用目标 target2 构建一个二进制文件,并完成 target1

的所有工作

我想实现以下目标,

  1. 为命令 scons target1
  2. 构建并安装 program1library1
  3. 为命令 scons target2
  4. 构建并安装 program1program2library1

实现此目标的正确方法是什么?

将多个目标组合到一个符号名下的正确方法是Alias()命令。查看 http://scons.org/doc/production/HTML/scons-user.html 上的用户指南,尤其是第 25 章。"Alias Targets"。请注意,Alias 本身就是一个目标节点,因此您可以将多个定义的别名 #1-#3 组合成一个全局别名,例如:

alias1 = Alias("alias1", "target1")
alias2 = Alias("alias2", "target2")
alias3 = Alias("alias3", "target3")
Alias("all", [alias1, alias2, alias3])

,您还可以在其中将每个 "target" 字符串替换为对实际 file/dir 节点的引用,因为它由 Builder 返回...