diff --git a/CHANGELOG.md b/CHANGELOG.md index faa0e5f..a216845 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,23 +2,46 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [4.7.0](http://github.com/abdes/asap/compare/v4.6.3...v4.7.0) (2024-01-29) + +### Features + +- add build option to enable or disable docs targets ([481c240](http://github.com/abdes/asap/commit/481c24087a23ad551e3ccccd260fa4896c963c2c)) +- comprehensive macos builds for CI ([084ae86](http://github.com/abdes/asap/commit/084ae866e16a7999c8612599610c385e0e555321)) +- comprehensive ubuntu builds for CI ([27fce46](http://github.com/abdes/asap/commit/27fce464c0664d160a519908898cc71d6ba95980)) +- comprehensive windows builds for CI ([e46196f](http://github.com/abdes/asap/commit/e46196f7daf138c2fd33248fbc0593367149480b)) +- custom index.html should be optional in project doc root ([9f906fd](http://github.com/abdes/asap/commit/9f906fd88181bcb75132fc4a6f8127538a58f22a)) +- upgrade CPM to 0.38.1 ([b333b38](http://github.com/abdes/asap/commit/b333b3858c204fa2151171f0ac494853089ffa37)) + +### Bug Fixes + +- always include CTest even when ASAP_BUILD_TESTS is OFF ([4c5ef88](http://github.com/abdes/asap/commit/4c5ef88ab79bd1ad50b68e1cc2a41fc16ce73613)) + +### Documentation + +- configure project folders for esbonio extension ([3adbff4](http://github.com/abdes/asap/commit/3adbff481b90e7c8398752e6c3489ed5b12f91c9)) +- there are no library modules anymore ([53e34e2](http://github.com/abdes/asap/commit/53e34e2f65f283f60f782b534701a6552db5b7fd)) +- update for in-module or in-root sphinx docs ([d2c0fe4](http://github.com/abdes/asap/commit/d2c0fe46942871b47e758dc9f5bfe7a73412bc6e)) +- update sphinx theme option to new name ([a78e49a](http://github.com/abdes/asap/commit/a78e49a78c868473a724d0357eeaee37a5a75201)) +- update url for executable books logo ([8b4dd17](http://github.com/abdes/asap/commit/8b4dd1739bfbfe057437bd3e96b5b29adf98fd1a)) + ## [4.6.3](http://github.com/abdes/asap/compare/v4.6.2...v4.6.3) (2023-03-25) ### Enhancements -* Simplify `devcontainer` setup by using features and additional container +- Simplify `devcontainer` setup by using features and additional container lifecycle commands. ### Bug Fixes -* enable profiling for test coverage for MSVC ([7348d0a](http://github.com/abdes/asap/commit/7348d0a36b05b2f2e9c517e5b981f2c218bd511e)), closes [#22](http://github.com/abdes/asap/issues/22) +- enable profiling for test coverage for MSVC ([7348d0a](http://github.com/abdes/asap/commit/7348d0a36b05b2f2e9c517e5b981f2c218bd511e)), closes [#22](http://github.com/abdes/asap/issues/22) ## [4.6.2](http://github.com/abdes/asap/compare/v4.6.1...v4.6.2) (2022-11-28) ### Features -* increase ccache hit rate ([a22a912](http://github.com/abdes/asap/commit/a22a91226060851fe9fc7e5bc0e51973df94d95c)) -* more robust handling of contract checking mode ([304e9ae](http://github.com/abdes/asap/commit/304e9aee1e8fb265be78163578c45ae22569e52b)) +- increase ccache hit rate ([a22a912](http://github.com/abdes/asap/commit/a22a91226060851fe9fc7e5bc0e51973df94d95c)) +- more robust handling of contract checking mode ([304e9ae](http://github.com/abdes/asap/commit/304e9aee1e8fb265be78163578c45ae22569e52b)) When linking against the contract checking and enforcement library `asap-contract` (https://github.com/asap-projects/asap-contract), it is @@ -26,16 +49,16 @@ All notable changes to this project will be documented in this file. See [standa `CONTRACTS` option when adding any type of target with `asap_add_xxx` API (e.g. asap_add_library. asap_add_test, etc): - * CONTRACTS OFF : set contract checking mode to OFF - * CONTRACTS AUDIT : set contract checking mode to AUDIT - * CONTRACTS DEFAULT : set contract checking mode to DEFAULT + - CONTRACTS OFF : set contract checking mode to OFF + - CONTRACTS AUDIT : set contract checking mode to AUDIT + - CONTRACTS DEFAULT : set contract checking mode to DEFAULT - * CONTRACTS AUTO : set contract checking mode using as a first priority the + - CONTRACTS AUTO : set contract checking mode using as a first priority the value passed in the cmake option `OPTION_CONTRACT_MODE`. If none is present, automatically set the mode based on the build configuration. For Debug -> AUDIT, For Release and RelMinSize -> OFF, and for RelWithDebInfo -> DEFAULT. - * CONTRACTS TESTING : indicates that contracts are being testing and the + - CONTRACTS TESTING : indicates that contracts are being testing and the target needs to have full control on the contract checking mode. Nothing will be done here. @@ -43,7 +66,7 @@ All notable changes to this project will be documented in this file. See [standa ### Bug Fixes -* **build:** [#21](http://github.com/abdes/asap/issues/21) target option `WARNING` not propagated properly ([432cdaf](http://github.com/abdes/asap/commit/432cdaff1e5c8775d0d5c533dd0abe5eac229bd7)) +- **build:** [#21](http://github.com/abdes/asap/issues/21) target option `WARNING` not propagated properly ([432cdaf](http://github.com/abdes/asap/commit/432cdaff1e5c8775d0d5c533dd0abe5eac229bd7)) By default, for every target we build, a compiler option will be added to treat warnings as errors, unless the target is added with `WARNING` as @@ -59,14 +82,14 @@ All notable changes to this project will be documented in this file. See [standa ### Bug Fixes -* always add code coverage 'all' targets ([d7309a0](http://github.com/abdes/asap/commit/d7309a0806e11a46c73b700f12bccb424c62839b)) -* version-info test was added even when ASAP_BUILD_TESTS is OFF ([b566e7b](http://github.com/abdes/asap/commit/b566e7b555ffb40f8ab1eea43d9a965c5724ccf1)) +- always add code coverage 'all' targets ([d7309a0](http://github.com/abdes/asap/commit/d7309a0806e11a46c73b700f12bccb424c62839b)) +- version-info test was added even when ASAP_BUILD_TESTS is OFF ([b566e7b](http://github.com/abdes/asap/commit/b566e7b555ffb40f8ab1eea43d9a965c5724ccf1)) ## [4.6.0](http://github.com/abdes/asap/compare/v4.5.2...v4.6.0) (2022-09-20) ### Features -* option to control the use of ccache, default is OFF ([49a17a9](http://github.com/abdes/asap/commit/49a17a99026ae7e59d14297d01ed2f8d10c78762)) +- option to control the use of ccache, default is OFF ([49a17a9](http://github.com/abdes/asap/commit/49a17a99026ae7e59d14297d01ed2f8d10c78762)) More robust implementation of fatser builds with `ccache`. Caching is enabled in GitHub CI builds and can be enabled in development environments by simply @@ -85,14 +108,14 @@ All notable changes to this project will be documented in this file. See [standa ### Bug Fixes -* sub-projects with tests fail due to coverage all target not being setup early enough ([400b2cc](http://github.com/abdes/asap/commit/400b2ccc120bd4f2c4d70f48fd3f94ce7a3f6de0)) +- sub-projects with tests fail due to coverage all target not being setup early enough ([400b2cc](http://github.com/abdes/asap/commit/400b2ccc120bd4f2c4d70f48fd3f94ce7a3f6de0)) ## [4.5.1](http://github.com/abdes/asap/compare/v4.5.0...v4.5.1) (2022-09-19) ### Bug Fixes -* contract mode definition should only be added when not testing asap_contract ([c6d5e34](http://github.com/abdes/asap/commit/c6d5e342e7a74236bb1b006be1e0d6bfe956a51a)) -* use correct path for the version include file ([7997b68](http://github.com/abdes/asap/commit/7997b68eeef236e6940b0ba168c79dbdd21b34ad)) +- contract mode definition should only be added when not testing asap_contract ([c6d5e34](http://github.com/abdes/asap/commit/c6d5e342e7a74236bb1b006be1e0d6bfe956a51a)) +- use correct path for the version include file ([7997b68](http://github.com/abdes/asap/commit/7997b68eeef236e6940b0ba168c79dbdd21b34ad)) ## [4.5.0](http://github.com/abdes/asap/compare/v4.4.8...v4.5.0) (2022-09-19) @@ -100,77 +123,78 @@ All notable changes to this project will be documented in this file. See [standa 1. **`version-info` tool** - Add the `version-info` tool to print the project info ([cb228e8](http://github.com/abdes/asap/commit/cb228e8af73fbf063371e4c597f757bf5e9a4b75)) + Add the `version-info` tool to print the project info ([cb228e8](http://github.com/abdes/asap/commit/cb228e8af73fbf063371e4c597f757bf5e9a4b75)) - This tool uses the generated `version.h` file in a small C++ program - to print the project's info, as defined in the project's master - `CMakeLists.txt`. + This tool uses the generated `version.h` file in a small C++ program + to print the project's info, as defined in the project's master + `CMakeLists.txt`. - It also constitutes an example of how to use the `version.h` file and - a simple test to check that the `asap` infrastructure for defining and - building targets is working. + It also constitutes an example of how to use the `version.h` file and + a simple test to check that the `asap` infrastructure for defining and + building targets is working. 2. **More visibility on project/module nesting** - Enhance configure logs with project/module nesting hierarchy ([f6c13f2](http://github.com/abdes/asap/commit/f6c13f2a08c89cac57fb2f0dd857c8f382e50e7b)) + Enhance configure logs with project/module nesting hierarchy ([f6c13f2](http://github.com/abdes/asap/commit/f6c13f2a08c89cac57fb2f0dd857c8f382e50e7b)) - Track the projects/modules nesting level with a hierarchy stack updated - when we enter/exit a project/module. Most of the management is done - automatically as helper functions get called to add modules or external - packages. Some of the boilerplate (minimal) is still manual: + Track the projects/modules nesting level with a hierarchy stack updated + when we enter/exit a project/module. Most of the management is done + automatically as helper functions get called to add modules or external + packages. Some of the boilerplate (minimal) is still manual: - * In the top-level `CMakeLists.txt`, the project needs to pushed at the - beginning and popped at the end. - * In each module `CMakeLists.txt`, the module needs to be pushed at - the start and popped at the end. + - In the top-level `CMakeLists.txt`, the project needs to pushed at the + beginning and popped at the end. + - In each module `CMakeLists.txt`, the module needs to be pushed at + the start and popped at the end. - Use the `ASAP_LOG_PROJECT_HIERARCHY` to get a string that contains - the nesting hierarchy. + Use the `ASAP_LOG_PROJECT_HIERARCHY` to get a string that contains + the nesting hierarchy. 3. **Formatting** - Implement robust project-wide formatting ([afcaebe](http://github.com/abdes/asap/commit/afcaebe544fc03684ae2f85d8507b1f4571d989b)) + Implement robust project-wide formatting ([afcaebe](http://github.com/abdes/asap/commit/afcaebe544fc03684ae2f85d8507b1f4571d989b)) - Now we can format cmake files with cmake-format and any of the file - types supported by clang-format (including C++, JavaScript and Json) - with clang-format. + Now we can format cmake files with cmake-format and any of the file + types supported by clang-format (including C++, JavaScript and Json) + with clang-format. - The following additional targets are defined: - * format Shows which files are affected by clang-format - * check-format errors if files are affected by clang-format (for CI) - * fix-format Applies clang-format to all affected files + The following additional targets are defined: - Dedicated targets for each of `cmake-format` and `clang-format` - are also added (e.g. cmake-format, clang-format, check-clang-format,...) + - format Shows which files are affected by clang-format + - check-format errors if files are affected by clang-format (for CI) + - fix-format Applies clang-format to all affected files + + Dedicated targets for each of `cmake-format` and `clang-format` + are also added (e.g. cmake-format, clang-format, check-clang-format,...) ### Bug Fixes -* generated `version.h` should follow project naming ([329bcdf](http://github.com/abdes/asap/commit/329bcdfc8cb9ba4782d0cbf4b3f21ad677307644)) -* install master project generated header files ([3c5c162](http://github.com/abdes/asap/commit/3c5c1628b3c920e52200f7e14ecde2346b78a6f4)) +- generated `version.h` should follow project naming ([329bcdf](http://github.com/abdes/asap/commit/329bcdfc8cb9ba4782d0cbf4b3f21ad677307644)) +- install master project generated header files ([3c5c162](http://github.com/abdes/asap/commit/3c5c1628b3c920e52200f7e14ecde2346b78a6f4)) ### Documentation -* add example output from version-info tool ([3a5515e](http://github.com/abdes/asap/commit/3a5515e74b0b0e5c06ba7e4500f7572a3bc4450f)) -* update after new formatting system ([082e513](http://github.com/abdes/asap/commit/082e5134fd7d1cd03cc06218e10d5cf978b22409)) +- add example output from version-info tool ([3a5515e](http://github.com/abdes/asap/commit/3a5515e74b0b0e5c06ba7e4500f7572a3bc4450f)) +- update after new formatting system ([082e513](http://github.com/abdes/asap/commit/082e5134fd7d1cd03cc06218e10d5cf978b22409)) ## [4.4.8](http://github.com/abdes/asap/compare/v4.4.7...v4.4.8) (2022-09-18) ### Bug Fixes -* restore test setup deleted by mistake ([cec7b9d](http://github.com/abdes/asap/commit/cec7b9d92481d1480c54610892cbfd954b9e0068)) +- restore test setup deleted by mistake ([cec7b9d](http://github.com/abdes/asap/commit/cec7b9d92481d1480c54610892cbfd954b9e0068)) ## [4.4.7](http://github.com/abdes/asap/compare/v4.4.6...v4.4.7) (2022-09-18) -* Refactor cmake common modules and the master cmake script to better work with +- Refactor cmake common modules and the master cmake script to better work with sub-projects built with `asap`. -* Reduce the verbosity of some actions and avoid re-running things when not +- Reduce the verbosity of some actions and avoid re-running things when not needed. ## [4.4.6](http://github.com/abdes/asap/compare/v4.4.5...v4.4.6) (2022-09-18) ### Bug Fixes -* top level install not working properly ([4ac4a31](http://github.com/abdes/asap/commit/4ac4a31001a2ab73764e3d9fe3f279b1e7b25aee)) +- top level install not working properly ([4ac4a31](http://github.com/abdes/asap/commit/4ac4a31001a2ab73764e3d9fe3f279b1e7b25aee)) `CMAKE_MODULE_PATH` should be reset at the top level project to make sure that every sub-project uses its own version of the `cmake` files. Additionally, @@ -181,27 +205,27 @@ All notable changes to this project will be documented in this file. See [standa ### Bug Fixes -* [#20](http://github.com/abdes/asap/issues/20) local install should use CMAKE_INSTALL_PREFIX to set variables ([2e1f1d4](http://github.com/abdes/asap/commit/2e1f1d49baff64dbf47dbbda234886ad2dfdbf1c)) -* [#20](http://github.com/abdes/asap/issues/20) use CMAKE_INSTALL_PREFIX to set variables ([2fffd96](http://github.com/abdes/asap/commit/2fffd96392114993bbb72e3f614725f867d61ab1)) -* wrong variable used of target name ([04b5343](http://github.com/abdes/asap/commit/04b5343ae541bd6d4f5ae1c1fa2eb85b93e0b5a3)) +- [#20](http://github.com/abdes/asap/issues/20) local install should use CMAKE_INSTALL_PREFIX to set variables ([2e1f1d4](http://github.com/abdes/asap/commit/2e1f1d49baff64dbf47dbbda234886ad2dfdbf1c)) +- [#20](http://github.com/abdes/asap/issues/20) use CMAKE_INSTALL_PREFIX to set variables ([2fffd96](http://github.com/abdes/asap/commit/2fffd96392114993bbb72e3f614725f867d61ab1)) +- wrong variable used of target name ([04b5343](http://github.com/abdes/asap/commit/04b5343ae541bd6d4f5ae1c1fa2eb85b93e0b5a3)) ## [4.4.4](http://github.com/abdes/asap/compare/v4.4.3...v4.4.4) (2022-09-18) ### Bug Fixes -* wrong variable used for target name ([04b5343](http://github.com/abdes/asap/commit/04b5343ae541bd6d4f5ae1c1fa2eb85b93e0b5a3)) +- wrong variable used for target name ([04b5343](http://github.com/abdes/asap/commit/04b5343ae541bd6d4f5ae1c1fa2eb85b93e0b5a3)) ## [4.4.3](http://github.com/abdes/asap/compare/v4.4.2...v4.4.3) (2022-09-18) ### Bug Fixes -* [#19](http://github.com/abdes/asap/issues/19) use generator expressions instead of CMAKE_BUILD_TYPE ([857d299](http://github.com/abdes/asap/commit/857d2997d4ec6c879036e10234b8baf907e91089)) +- [#19](http://github.com/abdes/asap/issues/19) use generator expressions instead of CMAKE_BUILD_TYPE ([857d299](http://github.com/abdes/asap/commit/857d2997d4ec6c879036e10234b8baf907e91089)) Code that checks CMAKE_BUILD_TYPE to set specific compiler flags or defines is problematic. Generator expressions should be used instead to handle configuration-specific logic correctly, regardless of the generator used. -* use cmake-format extension default behavior ([a5d5c5e](http://github.com/abdes/asap/commit/a5d5c5eae39e4d3d0094c00848cfe777d331a219)) +- use cmake-format extension default behavior ([a5d5c5e](http://github.com/abdes/asap/commit/a5d5c5eae39e4d3d0094c00848cfe777d331a219)) No need to force the `cmake-format` config file location as the command is run in the workspace root by default and it will look for and find the config file @@ -211,19 +235,19 @@ All notable changes to this project will be documented in this file. See [standa ### Bug Fixes -* [#13](http://github.com/abdes/asap/issues/13) move "caexcludepath" to dev-windows and exclude CPM cache ([0571714](http://github.com/abdes/asap/commit/0571714e9436bfec26d6450b5bc37f2a5f478a55)) -* [#14](http://github.com/abdes/asap/issues/14) upgrade CPM to 0.35.6 +- [#13](http://github.com/abdes/asap/issues/13) move "caexcludepath" to dev-windows and exclude CPM cache ([0571714](http://github.com/abdes/asap/commit/0571714e9436bfec26d6450b5bc37f2a5f478a55)) +- [#14](http://github.com/abdes/asap/issues/14) upgrade CPM to 0.35.6 ([695414b](http://github.com/abdes/asap/commit/695414b8e66d4d42d7ef3aaef3c6a4b8399d16c2)) -* [#15](http://github.com/abdes/asap/issues/15) get target type before testing it ([b8bd378](https://github.com/abdes/asap/commit/b8bd378f52bc131b84c13b08cfe70d649e9d9be0)) -* [#16](http://github.com/abdes/asap/issues/16) use CMAKE_CURRENT_SOURCE_DIR instead of CMAKE_SOURCE_DIR for cmake includes ([4ac6928](http://github.com/abdes/asap/commit/4ac6928fc2a0bf806bbcaa3bea898b5ff018a164)) -* [#17](http://github.com/abdes/asap/issues/17) git should not be required ([2c76104](http://github.com/abdes/asap/commit/2c761046d0801f643aa0215d34f2795ff0093dfc)) -* [#18](http://github.com/abdes/asap/issues/18) enforce end of line to LF ([943ae47](http://github.com/abdes/asap/commit/943ae479e09de999c324a9cfe3bbf8d688d255a3)) +- [#15](http://github.com/abdes/asap/issues/15) get target type before testing it ([b8bd378](https://github.com/abdes/asap/commit/b8bd378f52bc131b84c13b08cfe70d649e9d9be0)) +- [#16](http://github.com/abdes/asap/issues/16) use CMAKE_CURRENT_SOURCE_DIR instead of CMAKE_SOURCE_DIR for cmake includes ([4ac6928](http://github.com/abdes/asap/commit/4ac6928fc2a0bf806bbcaa3bea898b5ff018a164)) +- [#17](http://github.com/abdes/asap/issues/17) git should not be required ([2c76104](http://github.com/abdes/asap/commit/2c761046d0801f643aa0215d34f2795ff0093dfc)) +- [#18](http://github.com/abdes/asap/issues/18) enforce end of line to LF ([943ae47](http://github.com/abdes/asap/commit/943ae479e09de999c324a9cfe3bbf8d688d255a3)) ## [4.4.1](http://github.com/abdes/asap/compare/v4.4.0...v4.4.1) (2022-08-20) ### Bug Fixes -* [#12](http://github.com/abdes/asap/issues/12) disable used-but-marked-unused +- [#12](http://github.com/abdes/asap/issues/12) disable used-but-marked-unused ([6d42d83](http://github.com/abdes/asap/commit/6d42d83bfdd16123f05a69726058dc5f103143be)) For clang-tidy, this check generates many errors with google test framework @@ -233,7 +257,7 @@ All notable changes to this project will be documented in this file. See [standa ### Bug Fixes -* [#10](http://github.com/abdes/asap/issues/10) no more template export header +- [#10](http://github.com/abdes/asap/issues/10) no more template export header ([dd8ffd5](http://github.com/abdes/asap/commit/dd8ffd5a8f36340963349c7ebcb7c1713c2f880a)). Simply include the `asap__export.h` which defines the @@ -241,7 +265,7 @@ All notable changes to this project will be documented in this file. See [standa add explicit visibility for inline methods/functions and for template classes/functions as they are included in each compilation unit. -* [#11](http://github.com/abdes/asap/issues/11) refactor compiler options +- [#11](http://github.com/abdes/asap/issues/11) refactor compiler options management. ([78ae493](http://github.com/abdes/asap/commit/78ae4933f2e263a55f6537e66347c6b11a24b961)) @@ -252,7 +276,7 @@ All notable changes to this project will be documented in this file. See [standa `asap_set_compile_options()` function and passing `ADD`, `REMOVE` and relevant options as appropriate. -* [#9](http://github.com/abdes/asap/issues/9) remove no longer used function +- [#9](http://github.com/abdes/asap/issues/9) remove no longer used function ([5a7416f](http://github.com/abdes/asap/commit/5a7416f9563aae303d68ca2bb878fef97fbb7130)) ## [4.3.6](http://github.com/abdes/asap/compare/v4.3.5...v4.3.6) (2022-08-11) @@ -265,7 +289,7 @@ there. ### Bug Fixes -* **#6:** properly setup install layout +- **#6:** properly setup install layout ([71fd5d5](http://github.com/abdes/asap/commit/71fd5d5ee6f4694a8d7d6994e3a09d5b2f18ce24)), closes [#6](http://github.com/abdes/asap/issues/6) @@ -291,100 +315,102 @@ there. set(ASAP_INSTALL_INIT "misc") # ./misc ``` -* **#7:** add `build` and `ops` commit types +- **#7:** add `build` and `ops` commit types ([0d9187e](http://github.com/abdes/asap/commit/0d9187e9d20788d3f0c5048bcb4deca4cf5280e3)), closes [#7](http://github.com/abdes/asap/issues/7) Added the following two commit types: - * `build` Commits, that affect build components like build tool, ci pipeline, + + - `build` Commits, that affect build components like build tool, ci pipeline, dependencies, project version, ... - * `ops` Commits, that affect operational components like infrastructure, + - `ops` Commits, that affect operational components like infrastructure, deployment, backup, recovery, ... -* **#8:** add standard ccov excluded directories by default +- **#8:** add standard ccov excluded directories by default ([a8aabb3](http://github.com/abdes/asap/commit/a8aabb31d3ea6b0c5a50e13bf366f092ca724537)), closes [#8](http://github.com/abdes/asap/issues/8) The standard exclusions are: - * anything matching `*/test/*` in its path, i.e. files used to write tests, - * anything located inside `*/.cache/CPM/*`, i.e. third party modules included + + - anything matching `*/test/*` in its path, i.e. files used to write tests, + - anything located inside `*/.cache/CPM/*`, i.e. third party modules included using CPM, - * anything under `/usr`, i.e. system files + - anything under `/usr`, i.e. system files ## [4.3.4](http://github.com/abdes/asap/compare/v4.3.3...v4.3.4) (2022-08-04) ### Bug Fixes -* alias variable to enable/disable building tests +- alias variable to enable/disable building tests ([3992b0f](http://github.com/abdes/asap/commit/3992b0f7d500e653532bd0f206489058d99ad2d0)) -* typo in variable name to enable/disable building tests +- typo in variable name to enable/disable building tests ([9950fe2](http://github.com/abdes/asap/commit/9950fe2dcbe6c284e9ce32ce6a455e4a3a499ec4)) ## [4.3.3](http://github.com/abdes/asap/compare/v4.3.2...v4.3.3) (2022-08-04) ### Bug Fixes -* add aliases used by cmake common functions +- add aliases used by cmake common functions ([9c33906](http://github.com/abdes/asap/commit/9c339069acd9ab6355f8156f2e8eaf81c382342c)) ## [4.3.2](http://github.com/abdes/asap/compare/v4.3.1...v4.3.2) (2022-08-04) ### Bug Fixes -* [#5](http://github.com/abdes/asap/issues/5) update cmake/common to latest +- [#5](http://github.com/abdes/asap/issues/5) update cmake/common to latest ([5034b22](http://github.com/abdes/asap/commit/5034b22d39e5cb54acd51baa0bf815dbdd82093b)) ## [4.3.1](http://github.com/abdes/asap/compare/v4.3.0...v4.3.1) (2022-05-01) ### Features -* add ccache support to dev container +- add ccache support to dev container ([202c27a](http://github.com/abdes/asap/commit/202c27a628f7f35ae17f2df91c1d95f67360abea)) ## [4.3.0](http://github.com/abdes/asap/compare/v4.2.0...v4.3.0) (2022-04-07) ### Documentation -* add badge for OpenSSF best practices +- add badge for OpenSSF best practices ([26c01c8](http://github.com/abdes/asap/commit/26c01c8bcf98c6b47e6622dea91a6c6e10bc978c)) -* add CPM as preferred way of managing third party deps +- add CPM as preferred way of managing third party deps ([5a33f70](http://github.com/abdes/asap/commit/5a33f70a15a64c84f0a13b4286460f9df20459a5)) -* add tutorial videos +- add tutorial videos ([cb13248](http://github.com/abdes/asap/commit/cb13248244cddd0dc2c187893556fad7aa4f08b7)) -* fix thumbnail and links of project docs video +- fix thumbnail and links of project docs video ([1a6269e](http://github.com/abdes/asap/commit/1a6269eef8999504aba8105d4c446a93e41c988b)) -* how to report security vulnerabilities +- how to report security vulnerabilities ([46426e9](http://github.com/abdes/asap/commit/46426e9d44f3c4e8ee0b3fdd98e2ee56d13f8890)) -* improve the key features section +- improve the key features section ([79119ba](http://github.com/abdes/asap/commit/79119ba52f578a28dfdeb1ce59bba67c3fbcd3c1)) -* include build status badges for all branches +- include build status badges for all branches ([2b98ae1](http://github.com/abdes/asap/commit/2b98ae11ace8fa756c825686018a3a328ce27eca)) -* revamp the project README +- revamp the project README ([e72c4c3](http://github.com/abdes/asap/commit/e72c4c3288d565b34b137ab785abe90370052258)) -* rewrite the contributing section +- rewrite the contributing section ([c7e39c4](http://github.com/abdes/asap/commit/c7e39c4cfa6033aac42befe5ed994089e601b6a0)) -* update instructions for repo from template scenario +- update instructions for repo from template scenario ([1cafdb5](http://github.com/abdes/asap/commit/1cafdb57f86a4b61a736b3411791ae96ca684f33)) -* update project docs video +- update project docs video ([c7f79fc](http://github.com/abdes/asap/commit/c7f79fc64900cfa9ec3d2466300d1d32830b32f1)) ## [4.2.0](http://github.com/abdes/asap/compare/v4.1.8...v4.2.0) (2022-04-03) ### Features -* make ccache usable on all platforms +- make ccache usable on all platforms ([412730f](http://github.com/abdes/asap/commit/412730f86679d7ccd350cadf5649b7a489376cae)) ### Bug Fixes -* use only white-listed properties for interface library +- use only white-listed properties for interface library ([227de02](http://github.com/abdes/asap/commit/227de026878beb9dd9679d0cad12cf25bce16c4a)) ## [4.1.8](http://github.com/abdes/asap/compare/v4.1.7...v4.1.8) (2022-03-15) -* chore: use [CPM](https://github.com/cpm-cmake/CPM.cmake#adding-cpm) for +- chore: use [CPM](https://github.com/cpm-cmake/CPM.cmake#adding-cpm) for dependency management -* chore: use ccache to speedup build +- chore: use ccache to speedup build ## [4.1.7](http://github.com/abdes/asap/compare/v4.1.6...v4.1.7) (2022-03-06) @@ -394,9 +420,9 @@ docs: add last-updated-on timestamp ### Bug Fixes -* define asap_top_level_install as empty when project install should be skipped +- define asap_top_level_install as empty when project install should be skipped ([616deed](http://github.com/abdes/asap/commit/616deed7f2655cf6690135ed1914f7eec8053373)) -* use correct links for documentation +- use correct links for documentation ([486144c](http://github.com/abdes/asap/commit/486144c46222c22861b0a14f9dc002d148a31f24)), closes [#4](http://github.com/abdes/asap/issues/4) @@ -419,45 +445,45 @@ and streamline the generated targets. ### Bug Fixes -* always use top level build dir for output +- always use top level build dir for output ([1b01db2](http://github.com/abdes/asap/commit/1b01db2402bc52944646bcde3cf525315a4e0e1b)) -* doxygen and sphinx target conflict with modules +- doxygen and sphinx target conflict with modules ([02375ff](http://github.com/abdes/asap/commit/02375ff4a33e34a8e0cb9307ef4eb6de3271e945)) -* generate doc only if project is master +- generate doc only if project is master ([82190fa](http://github.com/abdes/asap/commit/82190fa6562f5e51dbbab660bcab8dc265e99a0b)) -* make doxygen targets sub-project friendly +- make doxygen targets sub-project friendly ([546fe73](http://github.com/abdes/asap/commit/546fe73ded53721dddbac311e9db41e4146b8ad2)) -* make gtest work again +- make gtest work again ([3ce658c](http://github.com/abdes/asap/commit/3ce658c5f1eb216a3286717e7f80827b96ff3b49)) -* make sphinx targets sub-project friendly +- make sphinx targets sub-project friendly ([024cc77](http://github.com/abdes/asap/commit/024cc77d17ed134ed5f3f4eea32226b07b05aad6)) -* only add clang-format/tidy targets if master project +- only add clang-format/tidy targets if master project ([060f082](http://github.com/abdes/asap/commit/060f082714e039eb4c2c2e198b5caed74690e8af)) -* only install files if requested to install +- only install files if requested to install ([9caaf9b](http://github.com/abdes/asap/commit/9caaf9b47e138be3f9845d6d58ebc21ff8dfa83b)) -* reorganize third_party modules for use of FetchContent +- reorganize third_party modules for use of FetchContent ([cc65bc2](http://github.com/abdes/asap/commit/cc65bc2219dbe38197107bae71252444994e118c)) -* use correct tagets for doc builds +- use correct tagets for doc builds ([559558e](http://github.com/abdes/asap/commit/559558e8eac3043eef19986cc2ae6d6dfd937be8)) -* use correct url for logo image +- use correct url for logo image ([96d1e01](http://github.com/abdes/asap/commit/96d1e01d971bd2f33faaebfc060082023f3a5209)) -* use correct url for master index page +- use correct url for master index page ([a56c327](http://github.com/abdes/asap/commit/a56c327ff3d7ab14d7a499fc4997279efd2647fe)) -* use lower case META_PROJECT_ID +- use lower case META_PROJECT_ID ([311e433](http://github.com/abdes/asap/commit/311e433e8698ff6385c2cda256bff83982596ed0)) -* wrong variable used for target name +- wrong variable used for target name ([829f351](http://github.com/abdes/asap/commit/829f351d22b384ddc060ae2df47ff9e801089dd2)) ## [4.1.1](http://github.com/abdes/asap/compare/v4.1.0...v4.1.1) (2022-02-18) -* docs: use submodule documentation deployment urls for inter-sphinx +- docs: use submodule documentation deployment urls for inter-sphinx configuration. using the local build directory will result in the deployed documentation to still be dependent on the build paths. ## [4.1.0](http://github.com/abdes/asap/compare/v4.0.2...v4.1.0) (2022-02-18) -* improvements and bug fixes in the documentation -* update GSL to 4.0.0 +- improvements and bug fixes in the documentation +- update GSL to 4.0.0 ## [4.0.2](http://github.com/abdes/asap/compare/v4.0.1...v4.0.2) (2022-02-17) @@ -466,22 +492,22 @@ refactor the docs for easier maintenance and use in forked projects. ### Bug Fixes -* contract api docs now in contract module +- contract api docs now in contract module ([d3366bd](http://github.com/abdes/asap/commit/d3366bd846d66486b2fcf98f36fd741452be8516)) -* keep `src` even when empty for doxygen not to complain +- keep `src` even when empty for doxygen not to complain ([be28f42](http://github.com/abdes/asap/commit/be28f429eddde8f258a08e84722e4fcaf975b384)) ## [4.0.1](http://github.com/abdes/asap/compare/v4.0.1...v4.0.0) (2022-02-17) -* update the GitHub action for windows build to 2022 +- update the GitHub action for windows build to 2022 ## [4.0.0](http://github.com/abdes/asap/compare/v3.1.2...v4.0.0) (2022-02-17) ### Features -* overload pattern for variant visitation on the fly +- overload pattern for variant visitation on the fly ([53ea7cc](http://github.com/abdes/asap/commit/53ea7cc74e89913cbf59eda2e30bd36c356e6acd)) -* refactor: trim the project to the bare +- refactor: trim the project to the bare minimum([8d48a56](https://github.com/abdes/asap/commit/8d48a56ef0db2359aa80b5e5b2854802dc6a45f0)) The intention from the asap base project is to be a template starter repo that @@ -495,159 +521,159 @@ refactor the docs for easier maintenance and use in forked projects. ### Bug Fixes -* use separate sphinx cache dir for each module +- use separate sphinx cache dir for each module ([03f36fc](http://github.com/abdes/asap/commit/03f36fc96c78c51b441feb9a7b9c70d19a2125c7)) ## [3.1.2](http://github.com/abdes/asap/compare/v3.1.1...v3.1.2) (2021-12-19) ### Features -* doxygen snippets from `test` or `examples` source directories +- doxygen snippets from `test` or `examples` source directories ([85b8000](http://github.com/abdes/asap/commit/85b8000e91dd105c0f90a62b1824957b68ce9c03)) ### Bug Fixes -* **doc:** wrong chapter title in logging module page +- **doc:** wrong chapter title in logging module page ([5966912](http://github.com/abdes/asap/commit/59669122d3ea8565878667e6f09b124bc7da1b99)) -* doxygen doc generation uses wrong module info +- doxygen doc generation uses wrong module info ([8833474](http://github.com/abdes/asap/commit/8833474402c523a3f2eda10b8927da46989f4bba)) -* need to hardcode `asap` when linking `common` +- need to hardcode `asap` when linking `common` ([e038a70](http://github.com/abdes/asap/commit/e038a702ce8727fa1a6c8b3a45cb4bb211281db5)) ## [3.1.1](http://github.com/abdes/asap/compare/v3.1.0...v3.1.1) (2021-12-19) ### Documentation -* minor tweaks to the sphinx config +- minor tweaks to the sphinx config ## [3.1.0](http://github.com/abdes/asap/compare/v3.0.0...v3.1.0) (2021-12-18) ### ⚠ BREAKING CHANGES -* The logging `Registry` is now implemented as a singleton class and therefore +- The logging `Registry` is now implemented as a singleton class and therefore it needs to be accessed via its instance() method. All other methods in its interface are not static anymore. -* Prefix the build options with `ASAP_` to make them unique and avoid clashing +- Prefix the build options with `ASAP_` to make them unique and avoid clashing with other projects that may use the generic `OPTION_xxx` names. Additionally, the build presets now always activate building of tests and examples except in release builds where examples are not built. -* The cmake option `OPTION_SELF_CONTAINED` is no longer relevant as we believe +- The cmake option `OPTION_SELF_CONTAINED` is no longer relevant as we believe that 3rd party dependencies should be installed using their own projects. In the worst case scenario, they should be explicitly added as install instructions to the project in a visible and documented way. ### Features -* add support for .editorconfig +- add support for .editorconfig ([5a7a689](http://github.com/abdes/asap/commit/5a7a6892f7c05798e79c6f81e9eef3b0a6256ca1)) -* provide a way to distinguish between debug and release builds via preprocessor +- provide a way to distinguish between debug and release builds via preprocessor define ([bbd84a2](http://github.com/abdes/asap/commit/bbd84a2c32c9833f79b442e202b647f93946b105)) ### Bug Fixes -* adjust doc target names to work in renamed projects +- adjust doc target names to work in renamed projects ([60acc65](http://github.com/abdes/asap/commit/60acc65fcc8d529a69f3617d792376be3e54b6ce)) -* cmake option was placed in the wrong command +- cmake option was placed in the wrong command ([b634b15](http://github.com/abdes/asap/commit/b634b153db975a8bc8715e82f7fafdc214504cfa)) -* clean the logging API implementation +- clean the logging API implementation ([25535c7](http://github.com/abdes/asap/commit/25535c76c0586d53f7c6c55db250a251f0c5390b)) ## [3.0.0](http://github.com/abdes/asap/compare/v2.0.1...v3.0.0) (2021-12-08) ### ⚠ BREAKING CHANGES -* The project requires C++17 as it is widely available in compilers now. Logical +- The project requires C++17 as it is widely available in compilers now. Logical traits such as conjunction, disjunction and negation are available from the standard include. -* major redesign of the cmake build system, many macros and functions have been +- major redesign of the cmake build system, many macros and functions have been changed and the build system overall has been simplified. -* `catch2` has been replaced by Google Test/Mock, which provides more features, +- `catch2` has been replaced by Google Test/Mock, which provides more features, less compiler warnings and is more popular. Catch2 or any other framework can still be easily added to an `asap` based project. -* `hedely` was removed from `common` and was replaced by a much lighter new file +- `hedely` was removed from `common` and was replaced by a much lighter new file `compilers.h`. -* `nowide` was removed from `common` and will be replaced by the standalone +- `nowide` was removed from `common` and will be replaced by the standalone boost nowide library when needed. -* `filesystem` footprint is too large to be included by default in `asap` +- `filesystem` footprint is too large to be included by default in `asap` starter project. It will be provided separately and a mechanism to easily add it into an `asap` based project will be implemented in a future update. ### Features -* add gsl library +- add gsl library ([9b982f1](http://github.com/abdes/asap/commit/9b982f17aeb9362619cf871ed9bbedb65344ab43)) -* add support for CMake presets +- add support for CMake presets ([bdcfa4d](http://github.com/abdes/asap/commit/bdcfa4d6a0cfffe0026af39b635c6dcd4e61e3a8)) -* add contract checking api (assertions) +- add contract checking api (assertions) ([c691446](http://github.com/abdes/asap/commit/c691446fd18242840e62529f1aabdaf8480b7ec6)) -* convert git submodule to local module +- convert git submodule to local module ([4e32e8a](http://github.com/abdes/asap/commit/4e32e8a6d1152413af12c7013ee759eca5e2d51d)) -* redesign cmake build system +- redesign cmake build system ([31ce14a](http://github.com/abdes/asap/commit/31ce14a301ac2e725b7760581e696f089225b161)) -* remove filesystem submodule +- remove filesystem submodule ([e2089ae](http://github.com/abdes/asap/commit/e2089ae7707c1448c78db23db2f53cbfab461599)) -* remove logical traits backport +- remove logical traits backport ([5ed0fe6](http://github.com/abdes/asap/commit/5ed0fe6e9e03399e640221a285f87a1a8a015cd1)) -* significantly enhance the documentation, both doxygen based for APIs and +- significantly enhance the documentation, both doxygen based for APIs and sphinx based for the project docs ### Bug Fixes -* configure compilation database for clangd when using cmake presets +- configure compilation database for clangd when using cmake presets ([7493c24](http://github.com/abdes/asap/commit/7493c240ce97396040d9a7bd09cb32ed56ea2340)) -* hardcode `asap` in places where we should not use the custom project name +- hardcode `asap` in places where we should not use the custom project name ([7f81298](http://github.com/abdes/asap/commit/7f81298b31e5a235bf4bce4778525a2e4594befa)) -* match Clang and Apple Clang for compiler options +- match Clang and Apple Clang for compiler options ([7e1e123](http://github.com/abdes/asap/commit/7e1e12317b62099bb58ce5dd4adfdbf1a759ad03)) -* convert unit testing to gtest/gmock +- convert unit testing to gtest/gmock ([b99c8d0](http://github.com/abdes/asap/commit/b99c8d0a315bb8200ca9cec93c9d5f64880c9271)) ## [2.0.1](http://github.com/abdes/asap/compare/v2.0.0...v2.0.1) (2021-11-06) ### Bug Fixes -* "-Wreserved-identifier" only if not APPLE +- "-Wreserved-identifier" only if not APPLE ([05fac12](http://github.com/abdes/asap/commit/05fac12d37978c6651c299e6ad1cc64dfed88fa0)) -* cmake require c++ 14 in all modules +- cmake require c++ 14 in all modules ([f05c9a6](http://github.com/abdes/asap/commit/f05c9a63e97dbcbef3e7d8188a04e719e2247d62)) -* use lower-case name for sphinx +- use lower-case name for sphinx ([f3005b5](http://github.com/abdes/asap/commit/f3005b5bd4055b16a57cdcb3af70a2f32b1c5809)) ## [2.0.0](http://github.com/abdes/asap/compare/v1.0.0...v2.0.0) (2021-11-06) ### Features -* Cleanup the code to remove most compiler and linter warnings. -* Refactor cmake build files to have robust support for sanitizers and linters. -* Rationalize the compiler options to strictly stick to those options that won't +- Cleanup the code to remove most compiler and linter warnings. +- Refactor cmake build files to have robust support for sanitizers and linters. +- Rationalize the compiler options to strictly stick to those options that won't conflict with application decisions. -* Enhanced the documentation +- Enhanced the documentation ### To be continued -* Refactoring of cmake build files. -* Remove additional warnings from code. -* Documentation. +- Refactoring of cmake build files. +- Remove additional warnings from code. +- Documentation. ### ⚠ BREAKING CHANGES -* logging is in a new module: asap::logging. +- logging is in a new module: asap::logging. Many modules would want to only get the basic common functionality without pulling extra 3rd party dependencies such as spdlog, fmt etc... For this reason, the logging functionality is taken out of the common submodule and moved to logging submodule. -* move logging functionality to separate module +- move logging functionality to separate module ([46f4dd9](http://github.com/abdes/asap/commit/46f4dd96edb1148e0772a1539b989fd80f3821e4)) ## 1.0.0 (2021-11-03) ### Features -* add support for Conventional Commits and auto Changelog +- add support for Conventional Commits and auto Changelog ([7b827fa](http://github.com/abdes/asap/commit/7b827fab2ae28ba903c69ab5acdf249cb3e55d85)) -* replace cmake compiler detection with hedley +- replace cmake compiler detection with hedley ([8bf0a3d](http://github.com/abdes/asap/commit/8bf0a3d53fcdba65497491cbd63c1dcffcba8467)) diff --git a/CMakeLists.txt b/CMakeLists.txt index e54a456..10e8437 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -51,8 +51,8 @@ set(META_GITHUB_REPO "https://github.com/abdes/asap") set(META_AUTHOR_DOMAIN "https://github.com/abdes/asap") set(META_AUTHOR_MAINTAINER "Abdessattar Sassi") set(META_VERSION_MAJOR "4") -set(META_VERSION_MINOR "6") -set(META_VERSION_PATCH "3") +set(META_VERSION_MINOR "7") +set(META_VERSION_PATCH "0") set(META_VERSION_REVISION "${GIT_REV}") set(META_VERSION "${META_VERSION_MAJOR}.${META_VERSION_MINOR}.${META_VERSION_PATCH}") set(META_NAME_VERSION "${META_PROJECT_NAME} v${META_VERSION} (${META_VERSION_REVISION})") diff --git a/cmake/common b/cmake/common index 954e6ce..436d339 160000 --- a/cmake/common +++ b/cmake/common @@ -1 +1 @@ -Subproject commit 954e6cebe4c902d07d33beef166df89073a7b4f2 +Subproject commit 436d339a34ec658b3877a17fd461f0fb742e41d4