All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
add_component_setto register a group of components without creating local targets.- Automatic
<name>::<name>aliases for components to simplify linking from parent projects that do not use abcmake.
- Support of header-only and source libraries via INTERFACE
- Automatic detection and linking of vendored CMake packages via
*Config.cmakeinsidecomponents/. - Release generation workflow (
release.yml) producing single-fileab.cmakeas a GitHub Release asset (no longer committed to repo).
- Removed committed
release/ab.cmakefrom repository; distribution now via CI artifacts only. - Internal linking logic split into
_abcmake_try_link_abcmake_componentand_abcmake_try_link_cmake_package. - README download instructions now point to GitHub Releases.
- Freshness check step for committed release file in test workflow (artifact no longer tracked).
- Markdown lint issues in README (fenced code languages, bare URLs, spacing).
register_componentsfunction to allow linking by component names (#14).- Property helper functions refactor (#13).
- Support for multiple values in
INCLUDE_DIRandSOURCE_DIRarguments (#12). - Python unit tests harness (#11).
target_link_componentspublic function for batch linking (#10).
- Split
ab.cmakeinto modular internal files for development (#6). - Interface revamp for simplicity (#3).
- Reimplementation as a CMake module with public functions for better compatibility (#1).
- Typos and documentation corrections across README.
- Added protection against adding the same project twice.
- New public functions for non-standard project structures (#2).
- Large interface overhaul (precursor to 6.1 improvements).
- Major refactor and internal cleanup.
- Search in include and src folders.
- Install scripts and copying of sources during installation.
- Initial README and project restructuring.
- Initial CMake build setup.
- First commit / project bootstrap.