0

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

我需要的是:

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

1 回答 1

1

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

于 2017-10-12T08:56:22.917 回答