0

假设我有一些包含大量子项目的项目,并且在大多数情况下,我只需要一次编译其中的几个:

Project {
    property stringList plugins: ["plugin3", "plugin4"] // this is set externally
    references: plugins.map(function(p) { return "plugins/"+p+".qbs" })
}

假设plugin3取决于plugin1plugin2

Depends { name: "plugin1" }
Depends { name: "plugin2" }

在这种情况下,我必须将plugins属性设置为:

plugins: ["plugin1", "plugin2", "plugin3", "plugin4"]

这是我想要避免的。所以,问题是:有没有办法让子项目依赖项自动添加为项目references

ps 还有一种替代方法可以使所有子项目都存在,但有条件地禁用。我可以通过依赖子项目以某种方式使它们启用吗?

4

1 回答 1

0

references应该几乎总是一个静态列表;没有必要仅仅因为您只想一次编译产品的某个子集而使其成为有条件的。

相反,您要做的是使用-p允许您指定要构建的特定产品的名称的选项运行 qbs。使用此选项将仅构建该产品及其依赖项,而不构建项目中的其余产品。

于 2017-02-09T05:45:58.500 回答