Scons建立订单

时间:2016-01-27 12:10:42

标签: python scons

我们有两个工具:Tool1和Tool2。 Tool1基于SourceFile创建一些TargetFile。现在我们想在Tool2中使用TargetFile来创建另一个NewTargetFile。结构类似于:

   env.Tool1(TargetFile, SourceFile)
   env.Tool2(NewTargetFile, TargetFile)

Tool2的发射器正在使用TargetFile来做一些魔法。结果,Scons说它无法打开TargetFile(因为它尚未构建)。

如何制作,Scons将在Tool2之前构建Tool1?

1 个答案:

答案 0 :(得分:1)

您应该能够使用第一个呼叫的返回值(节点或节点列表)作为第二个呼叫的输入:

res = env.Tool1(TargetFile, SourceFile)
env.Tool2(NewTargetFile, res)

这应该自动创建所需的依赖项。通常,将简单文件名指定为字符串,例如" foo.in",TargetFile也应该有效。但是我猜测你的发射器正在做技巧并返回额外的文件名,或者改为使用与TargetFile完全不同的文件名。您可能希望使用以下命令检查返回值:

res = env.Tool1(TargetFile, SourceFile)
print map(str, res)
env.Tool2(NewTargetFile, res)

,或类似。

相关问题