-
Suggestion
-
Resolution: Unresolved
-
P2: Important
-
None
-
1.2.0
-
None
all Products should be imagined as dependencies of the containing Project(s). by adding a property which declares their "importance" (congruently to QBS-575 for Depends items), a Product's condition for building would become whether its mandatory dependencies are satisfied. this is much nicer than making bindings from the dependencies' present properties to the products' conditions.
Product {
// dependencies being unsatisfied breaks the build by default, ...
importance: Recommended
// ... but the product can be manually excluded
//enabled: true // that's actually the default
Depends {
name: "OpenSSL"
// absence prevents build
importance: Mandatory
}
Depends {
name: "Botan"
// absence does not prevent build
importance: Suggested
}
}
Product {
// dependencies being unsatisfied excludes it from the build
importance: Suggested
Depends {
name: "OpenSSL"
// absence breaks build by default, but can be disabled
importance: Recommended
}
}
as an extension, it's thinkable to declare Products as Dispensable, in which case they are not built at all (by default) unless other (actually built) Products depends on them.