Qbs取决于项目以影响产品列表

时间:2017-02-08 08:44:56

标签: qbs

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

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

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

1 个答案:

答案 0 :(得分:0)

references几乎总是一个静态列表;没有必要让它成为有条件的,因为你只想一次编译产品的某个子集。

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