SCons是否对从缓存文件中检索的文件运行后期操作?

时间:2015-07-16 18:25:41

标签: python scons

我有一个帖子Action附加到Command

my_command = env.Command(out_file, in_file, Action(cmd_str))
env.AddPostAction(my_command, Action(...))

除非通过sccache从缓存文件中提取out_file,否则这很有效。然后,似乎后期行动不再运行。

是否真的不会对从缓存文件中提取的目标运行后期操作?如果是这样,我如何确保我的邮政行动始终运行?

谢谢!

1 个答案:

答案 0 :(得分:2)

这里的问题就是为什么你想要“永远”地运行你的帖子,即使只是从缓存中检索一个构建的文件。 我假设您的帖子操作是某种调试或打印输出,您总是希望在有问题的目标被“访问”时看到。 这不是行动的概念所在。 Action()定义了实际构建目标所需的单个步骤。一旦它被创建,并且可以从缓存中检索,就不需要第二次运行那些Action()......事实上,它可能适得其反:想象一下你的帖子动作添加了一个特殊的预告片将信息调试到最终目标文件或可执行文件。每次从缓存中检索目标时,是否要添加此信息?我不这么认为。

总而言之,当从缓存中检索文件时,不会执行任何操作 - 无论是前置还是后置,还是实际操作列表 - 都不会运行。这是设计,正如我试图在第一段中概述的那样。