Strict rebuild needs to be a dependency semantic
When using non-strict build planning modes; we have a catch all flag which is set by the element type to ensure that things get rebuilt in a strict way regardless of whether strict mode is active.
This is currently used for elements like compose
, which need to recompose anyway even if not everything it composed was rebuilt in a session.
This works well when:
- Static libraries are never linked
- Header files in dependencies are really only API headers, and not macros which need re-expansion or inline functions which need to be recompiled against
To improve this; elements should be able to specify strict-rebuild directly on the dependencies they depend on - i.e. if an element depends on another element for a static library; it can depend on it "strictly".