规则项:如何检查是否必须重新运行?

Rule Item: how to check if it has to be re-run?

在我的例子中,Rule 必须在环境更改(工作目录的 svn 修订)而不是输入文件更改时调用。因此,根据 alwaysRun,我的规则从不(构建失败)或总是(强制重建依赖项)被调用。

我需要的是:

  1. 一种检查 Rule 是否必须 运行 的方法
  2. 一种以某种方式缓存规则输出的方法,仅在必要时才重建依赖项

规则和命令被重新运行 不仅是因为输入更改,而且如果其中使用的属性发生更改。因此,在您的情况下,您需要定义一个对应于 svn 存储库状态的 属性 并在您的规则 and/or 命令中引用它。然后当且仅当有必要时才会重新执行。 请注意,在 qbs 1.10 中,这样的 属性 是通过 vcs 模块自动提供的:http://doc-snapshots.qt.io/qbs/vcs-module.html