Repository navigation
v5.5.0
What's new
This release adds independent installation controls for nested packages and automatic Windows runtime DLL deployment for cpp-library-managed tests and examples.
- Independent package installation:
cpp_library_setup(INSTALL_OPTION <option_name>)lets packages sharing a namespace opt into installation independently, instead of sharing a single namespace-wide option. - Windows DLL deployment: tests and examples created through
TESTSandEXAMPLESautomatically receive their runtime DLL dependencies beside the executable after linking, including dependencies from installed packages. Empty DLL lists, paths containing spaces, and DLLs already beside the executable are supported. - Windows DLL and ABI guidance: documents explicit
.defexports, versioned C ABI boundaries, imported-target usage, and application deployment responsibilities.
Fixes and maintenance
- Isolate deferred installation metadata and untracked-dependency validation per target so nested packages cannot overwrite each other's package configuration or validation state.
- Correct the documented build/install interface pattern for separately installed dependencies, preserving downstream transitive linkage.
- Update the generated CI Doxygen installation action to 2.0.3 and the documentation theme to doxygen-awesome-css 2.5.0.
- Add nested configure/build/install/consumer regression coverage and Windows static/shared consumer CI.
Compatibility and version choice
v5.5.0 is a minor release: the new installation option and DLL deployment are additive; no breaking public API or default changes were identified relative to v5.4.1.
- Omitting
INSTALL_OPTIONpreserves the uppercase${NAMESPACE}_INSTALLoption and its existingPROJECT_IS_TOP_LEVELdefault. - Compiled libraries continue to follow the consumer's
BUILD_SHARED_LIBSsetting, with static linking as the default; header-only libraries remainINTERFACEtargets. - The minimum CMake version remains 3.24.
- Automatic DLL copying is limited to toolkit-created tests and examples. Deploying downstream applications and the compiler runtime remains the application's responsibility.
- Projects using only
BUILD_INTERFACEfor a dependency should also supply the documented install interface if installed consumers need transitive linkage. The toolkit does not automatically rewrite existing consumer link declarations.
Release checks
At commit b5273fdb8d0c356579883d8419fecb267804d0f2, all four hosted CI jobs passed: unit tests, integration tests, Windows static/DLL consumers, and documentation.
Local Windows validation with CMake 4.3.1 also passed: 32 dependency-mapping cases (one existing case skipped), provider-merge tests, setup version resolution, four target-type cases, and all 11 nested installation cases, including static/shared installed consumers and runtime DLL deployment.
Changes include #27.
Full changelog: v5.4.1...v5.5.0