我遇到一个问题,我需要一些代码才能运行命令构建器:
node = env.Command (target, dependencies, function)
在这种情况下,如果目标已过期,函数将运行,这就是我想要的,但如果目标在缓存中,则函数不会运行。我想要的是,如果从缓存中提取目标,则运行不同的功能。
我试过了:
env.AddPostAction(node, function2)
但是也没有调用该函数。
有什么想法吗?感谢。
答案 0 :(得分:0)
Afaik,scons在执行代码时不知道它将如何满足需求。它在完成第一轮后做出决定。因此,即使您可以说,我也不相信您可以在代码中对其采取行动。
一种简单明了的方法是解析scons输出中的'Retrieved ... File name'。
当然,问题表明依赖关系设置得很糟糕,看起来你修复了这个问题。