如何检查运行抖动是否会重建目标(实际上没有尝试构建它)?

时间:2015-08-17 16:56:38

标签: haskell shake-build-system

在某些情况下,我想非常快速地知道某个目标文件是否是最新的,即是否使用震动构建它会运行任何传递给目标的规则。

通过摇晃实现这一目标的最佳方式是什么?

我的问题与Shake: Signal whether anything had to be rebuilt at all有些相关。但是,我不想运行实际构建,因为我不想触摸任何构建产品。

1 个答案:

答案 0 :(得分:2)

在Shake中,哪些文件“脏”有点难以确定。如果您感兴趣的文件取决于任何神谕(甚至是传递),那么该文件被认为是“脏的”,因为神谕总是很脏。但是,如果Shake重新运行依赖规则/ oracles并且它们没有改变,那么在那时它被认为是干净的。因此,大多数规则在运行任何内容之前都被认为是脏的,并且只有在运行一些规则之后它才会变得干净。

我有raised a ticket做更好的事情。一个选项将被赋予一个目标规则,说明哪些叶依赖于它并且是脏的 - 这将列出oracles(你合理地期望不会改变),如果它列出任何源文件,你会期望它重建。 / p>

(如果有人有任何好主意,我会欢迎提出建议。)