Details
-
Suggestion
-
Resolution: Unresolved
-
P2: Important
-
1.2.0
-
None
Description
often it makes sense to split a large Product into multiple subproducts. this can happen by creating intermediate static libs ("convenience libraries") or source collections, similar to qmake's .pri files (see QBS-59).
typically, it makes sense to have these subproducts inherit the properties (e.g., positionIndependentCode, optimization, defines, etc.) from the final product they are meant to be linked into.
such inheritance is most naturally achieved by nesting the items.
obviously, to achieve an actual modularization, one wouldn't directly nest the items in the same file, but instead have the Product item have a references property like the Project item does.
given this abstract notion of nesting, qbs could actually decide itself whether it collects the sources of all subproducts or creates convenience libraries - the latter could be necessary to get around the limitation on the number of input files of some linkers. another interpretation of the same project could actually build shared libraries to save re-linking time - developer builds of qtwebkit do that. the only constraint is that the end result should be semantically the same as if it was all a single product.
Attachments
Issue Links
- relates to
-
QBS-848 Attaching Module Properties to Groups within Modules is Undefined
- Closed
-
QBS-450 Add support for container Items (as children of Products, Projects, possibly others)
- Closed
-
QBS-733 Set Module Properties in Project Item
- Reported
-
QBS-59 support source file collection products
- Closed