Details
-
Suggestion
-
Resolution: Unresolved
-
P2: Important
-
1.2.0
-
None
Description
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.