假设我有一些包含大量子项目的项目,并且在大多数情况下我只需要一次编译其中几个:
Project {
property stringList plugins: ["plugin3", "plugin4"] // this is set externally
references: plugins.map(function(p) { return "plugins/"+p+".qbs" })
}
假设plugin3
取决于plugin1
和plugin2
:
Depends { name: "plugin1" }
Depends { name: "plugin2" }
在这种情况下,我必须将plugins
属性设置为:
plugins: ["plugin1", "plugin2", "plugin3", "plugin4"]
这是我想要避免的。所以,问题是:有没有办法让子项目依赖项自动添加为项目references
?
P.S。还有一种替代方法可以使所有子项目都存在,但有条件地禁用。我可以通过依赖子项目以某种方式使它们启用吗?
答案 0 :(得分:0)
references
几乎总是一个静态列表;没有必要让它成为有条件的,因为你只想一次编译产品的某个子集。
相反,您要做的是使用-p
选项运行qbs,它允许您指定要构建的特定产品的名称。使用此选项只会构建该产品及其依赖项,而不会构建项目中的其他产品。