From c871b0cf69136bbae4d34cffe6b3c247ba54bad6 Mon Sep 17 00:00:00 2001 From: Abdessattar Sassi <457645+abdes@users.noreply.github.com> Date: Sat, 20 Aug 2022 14:22:46 +0400 Subject: [PATCH 1/9] chore: update third party submodules to latest --- cmake/common | 2 +- doxygen/doxygen-awesome-css | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cmake/common b/cmake/common index ea15fa9..2ab46ff 160000 --- a/cmake/common +++ b/cmake/common @@ -1 +1 @@ -Subproject commit ea15fa9b1e5dd296d932866ee0b9a1d2eab9296c +Subproject commit 2ab46ff99ba8f95986bdceab74befd59f9163800 diff --git a/doxygen/doxygen-awesome-css b/doxygen/doxygen-awesome-css index a5efba0..74b4250 160000 --- a/doxygen/doxygen-awesome-css +++ b/doxygen/doxygen-awesome-css @@ -1 +1 @@ -Subproject commit a5efba07a3d4fd6317d95657b3095b97e134b791 +Subproject commit 74b42503df7e314dd66f508edca3c3ccfd611b72 From 253c3f84248536590d3f08d0cfc3e3a213ad2043 Mon Sep 17 00:00:00 2001 From: Abdessattar Sassi <457645+abdes@users.noreply.github.com> Date: Sat, 20 Aug 2022 14:23:11 +0400 Subject: [PATCH 2/9] style: mark literal block as `cmake` --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9ece8b9..f0470cd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,7 +21,7 @@ there. [GnuInstallDirs](https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html), otherwise, it will be installed using a simplified local layout as following: -``` +```cmake # Install into local directory set(ASAP_INSTALL_ROOT ".") # ./ set(ASAP_INSTALL_LIB "lib") # ./lib From 5a7416f9563aae303d68ca2bb878fef97fbb7130 Mon Sep 17 00:00:00 2001 From: Abdessattar Sassi <457645+abdes@users.noreply.github.com> Date: Sat, 20 Aug 2022 14:25:22 +0400 Subject: [PATCH 3/9] fix: #9 remove no longer used function --- cmake/BuildHelpers.cmake | 23 ----------------------- 1 file changed, 23 deletions(-) diff --git a/cmake/BuildHelpers.cmake b/cmake/BuildHelpers.cmake index 7f87e5a..a65d73f 100644 --- a/cmake/BuildHelpers.cmake +++ b/cmake/BuildHelpers.cmake @@ -8,29 +8,6 @@ # Build Helpers to simplify target creation. # ------------------------------------------------------------------------------ -function(asap_compile_definitions target) - # - # Compile definitions - # - # ones we use for every single target - target_compile_definitions( - ${target} - PRIVATE $<$: - ASAP_CONTRACT_DEFAULT - > - $<$: - ASAP_CONTRACT_OFF - > - $<$: - ASAP_CONTRACT_AUDIT - > - $<$: - NOMINMAX - WIN32_LEAN_AND_MEAN=1 - _WIN32_WINNT=0x0600 - >) -endfunction() - include(GenerateTemplateExportHeader) function(asap_generate_export_headers target include_dir) # Set API export file and macro From dd8ffd5a8f36340963349c7ebcb7c1713c2f880a Mon Sep 17 00:00:00 2001 From: Abdessattar Sassi <457645+abdes@users.noreply.github.com> Date: Sat, 20 Aug 2022 14:27:50 +0400 Subject: [PATCH 4/9] fix: #10 no more template export header Template classes are included in every compilation unit and do not need symbol visibility to be specifically managed. The '_export.h' file auto-generated by cmake is enough. --- cmake/BuildHelpers.cmake | 3 --- cmake/GenerateTemplateExportHeader.cmake | 25 -------------------- templates/template_api.h.in | 29 ------------------------ templates/template_msvc_api.h.in | 29 ------------------------ 4 files changed, 86 deletions(-) delete mode 100644 cmake/GenerateTemplateExportHeader.cmake delete mode 100644 templates/template_api.h.in delete mode 100644 templates/template_msvc_api.h.in diff --git a/cmake/BuildHelpers.cmake b/cmake/BuildHelpers.cmake index a65d73f..77ff436 100644 --- a/cmake/BuildHelpers.cmake +++ b/cmake/BuildHelpers.cmake @@ -8,7 +8,6 @@ # Build Helpers to simplify target creation. # ------------------------------------------------------------------------------ -include(GenerateTemplateExportHeader) function(asap_generate_export_headers target include_dir) # Set API export file and macro string(MAKE_C_IDENTIFIER ${target} TEMPLATE_TARGET_ID) @@ -21,6 +20,4 @@ function(asap_generate_export_headers target include_dir) # Create API export headers generate_export_header(${target} EXPORT_FILE_NAME ${export_file} EXPORT_MACRO_NAME ${TEMPLATE_TARGET_ID}_API) - generate_template_export_header(${target} ${TEMPLATE_TARGET_ID} - ${template_export_file}) endfunction() diff --git a/cmake/GenerateTemplateExportHeader.cmake b/cmake/GenerateTemplateExportHeader.cmake deleted file mode 100644 index ad244f6..0000000 --- a/cmake/GenerateTemplateExportHeader.cmake +++ /dev/null @@ -1,25 +0,0 @@ -# ===-----------------------------------------------------------------------===# -# Distributed under the 3-Clause BSD License. See accompanying file LICENSE or -# copy at https://opensource.org/licenses/BSD-3-Clause). -# SPDX-License-Identifier: BSD-3-Clause -# ===-----------------------------------------------------------------------===# - -# ------------------------------------------------------------------------------ -# Generate export header for template classes/functions. -# ------------------------------------------------------------------------------ - -# Creates an export header similar to generate_export_header, but for templates. -# The main difference is that for MSVC, templates must not get exported. When -# the file ${export_file} is included in source code, the macro -# ${target_id}_TEMPLATE_API may get used to define public visibility for -# templates on GCC and Clang platforms. -# -function(generate_template_export_header target target_id export_file) - if("${CMAKE_CXX_COMPILER_ID}" MATCHES "MSVC") - configure_file(${PROJECT_SOURCE_DIR}/templates/template_msvc_api.h.in - ${CMAKE_CURRENT_BINARY_DIR}/${export_file}) - else() - configure_file(${PROJECT_SOURCE_DIR}/templates/template_api.h.in - ${CMAKE_CURRENT_BINARY_DIR}/${export_file}) - endif() -endfunction() diff --git a/templates/template_api.h.in b/templates/template_api.h.in deleted file mode 100644 index 9db3061..0000000 --- a/templates/template_api.h.in +++ /dev/null @@ -1,29 +0,0 @@ -//===----------------------------------------------------------------------===// -// Distributed under the 3-Clause BSD License. See accompanying file LICENSE or -// copy at https://opensource.org/licenses/BSD-3-Clause). -// SPDX-License-Identifier: BSD-3-Clause -//===----------------------------------------------------------------------===// - -#pragma once - -// NOLINTBEGIN(cppcoreguidelines-macro-usage) - -#include <${TEMPLATE_INCLUDE_DIR}/${TEMPLATE_TARGET}_export.h> - -// clang-format off -#ifdef ${target_id}_STATIC_DEFINE -# define ${target_id}_TEMPLATE_API -#else -# ifndef ${TEMPLATE_TARGET_ID}_TEMPLATE_API -# ifdef ${TEMPLATE_TARGET_ID}_EXPORTS - /* We are building this library */ -# define ${TEMPLATE_TARGET_ID}_TEMPLATE_API __attribute__((visibility("default"))) -# else - /* We are using this library */ -# define ${TEMPLATE_TARGET_ID}_TEMPLATE_API __attribute__((visibility("default"))) -# endif -# endif -#endif -// clang-format on - -// NOLINTEND(cppcoreguidelines-macro-usage) diff --git a/templates/template_msvc_api.h.in b/templates/template_msvc_api.h.in deleted file mode 100644 index 5e50a5b..0000000 --- a/templates/template_msvc_api.h.in +++ /dev/null @@ -1,29 +0,0 @@ -//===----------------------------------------------------------------------===// -// Distributed under the 3-Clause BSD License. See accompanying file LICENSE or -// copy at https://opensource.org/licenses/BSD-3-Clause). -// SPDX-License-Identifier: BSD-3-Clause -//===----------------------------------------------------------------------===// - -#pragma once - -// NOLINTBEGIN(cppcoreguidelines-macro-usage) - -#include <${TEMPLATE_INCLUDE_DIR}/${TEMPLATE_TARGET}_export.h> - -// clang-format off -#ifdef ${TEMPLATE_TARGET_ID}_STATIC_DEFINE -# define ${target_id}_TEMPLATE_API -#else -# ifndef ${TEMPLATE_TARGET_ID}_TEMPLATE_API -# ifdef ${TEMPLATE_TARGET_ID}_EXPORTS - /* We are building this library */ -# define ${TEMPLATE_TARGET_ID}_TEMPLATE_API -# else - /* We are using this library */ -# define ${TEMPLATE_TARGET_ID}_TEMPLATE_API -# endif -# endif -#endif -// clang-format on - -// NOLINTBEGIN(cppcoreguidelines-macro-usage) From 78ae4933f2e263a55f6537e66347c6b11a24b961 Mon Sep 17 00:00:00 2001 From: Abdessattar Sassi <457645+abdes@users.noreply.github.com> Date: Sat, 20 Aug 2022 14:32:37 +0400 Subject: [PATCH 5/9] fix: #11 refactor compiler options management --- CMakeLists.txt | 1 - cmake/AsapTargets.cmake | 24 ++-- cmake/CompileOptions.cmake | 221 ++++--------------------------------- cmake/TestTargets.cmake | 24 +++- 4 files changed, 58 insertions(+), 212 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ae3d925..6b28aca 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -110,7 +110,6 @@ set(${PROJECT_NAME}_BUILD_EXAMPLES ${ASAP_BUILD_EXAMPLES}) include(AsapTargets) include(BuildHelpers) include(GenerateExportHeader) -include(CompileOptions) # Override the ${META_PROJECT_ID}_INSTALL option to ON/OFF to respectively force # install/no-install behavior for this project. This is particularly useful when diff --git a/cmake/AsapTargets.cmake b/cmake/AsapTargets.cmake index 92ce110..514bf9d 100644 --- a/cmake/AsapTargets.cmake +++ b/cmake/AsapTargets.cmake @@ -5,8 +5,10 @@ # ===-----------------------------------------------------------------------===# include(CMakePackageConfigHelpers) +include(common/CompileOptions) include(common/SwiftTargets) include(CompileDefinitions) +include(CompileOptions) # ------------------------------------------------------------------------------ # Meta information about the this module @@ -113,6 +115,8 @@ function(asap_add_library target) if(NOT ${type} STREQUAL "INTERFACE_LIBRARY") # Set some common private compiler defines asap_set_compile_definitions(${target}) + # Set some common compiler options + asap_set_compile_options(${target}) # Generate export headers for the library asap_generate_export_headers(${target} ${META_MODULE_NAME}) @@ -129,19 +133,28 @@ endfunction() function(asap_add_executable target) swift_add_executable("${target}" ${ARGN}) + # Set some common private compiler defines asap_set_compile_definitions(${target}) + # Set some common compiler options + asap_set_compile_options(${target}) set_target_properties(${target} PROPERTIES FOLDER "Executables") endfunction() function(asap_add_tool target) swift_add_tool("${target}" ${ARGN}) + # Set some common private compiler defines asap_set_compile_definitions(${target}) + # Set some common compiler options + asap_set_compile_options(${target}) set_target_properties(${target} PROPERTIES FOLDER "Tools") endfunction() function(asap_add_tool_library target) swift_add_tool_library("${target}" ${ARGN}) + # Set some common private compiler defines asap_set_compile_definitions(${target}) + # Set some common compiler options + asap_set_compile_options(${target}) set_target_properties( ${target} PROPERTIES FOLDER "Tool Libraries" @@ -149,14 +162,3 @@ function(asap_add_tool_library target) SOVERSION ${META_MODULE_VERSION_MAJOR} DEBUG_POSTFIX "d") endfunction() - -function(asap_add_test_library target) - swift_add_test_library("${target}" ${ARGN}) - asap_set_compile_definitions(${target}) - set_target_properties( - ${target} - PROPERTIES FOLDER "Test Libraries" - VERSION ${META_MODULE_VERSION} - SOVERSION ${META_MODULE_VERSION_MAJOR} - DEBUG_POSTFIX "d") -endfunction() diff --git a/cmake/CompileOptions.cmake b/cmake/CompileOptions.cmake index 4b1be30..c29a760 100644 --- a/cmake/CompileOptions.cmake +++ b/cmake/CompileOptions.cmake @@ -5,232 +5,57 @@ # ===-----------------------------------------------------------------------===# # ------------------------------------------------------------------------------ -# Set a common set of compiler options and warning flags +# Set additional common compiler options and warning flags # ------------------------------------------------------------------------------ - -# -# Call swift_set_compile_options() for any target to set the Swift default set -# of compiler options. This includes -# ~~~ -# - exceptions disabled -# - rtti disabled -# - strict aliasing disabled -# - Warnings as errors (-Werror) -# - Extensive set of enabled warnings -# ~~~ -# -# Exceptions and/or RTTI can be selectively enabled for a target be passing -# EXCEPTIONS and/or RTTI as a parameter, eg -# -# ~~~ -# swift_set_compile_options(sample-target EXCEPTIONS RTTI) -# ~~~ -# -# will enable exceptions and rtti for sample-target only -# -# Warning flags can be removed from the default set by passing REMOVE followed -# by a list of warning flags, eg -# -# ~~~ -# swift_set_compile_options(sample-target REMOVE -Wconversion) -# ~~~ -# -# will prevent -Wconversion from being passed to the compiler for sample-target -# only -# -# Similarly extra options can be given by passing ADD followed by a list of -# warning flags (or other compiler options), eg -# -# ~~~ -# swift_set_compile_options(sample-target ADD -Wformat=2) -# ~~~ -# -# will pass -Wformat=2 to the compiler for sample-target only -# -# By default -Werror is set, but this can be prevented by passing WARNING as a -# parameter, eg # -# ~~~ -# swift_set_compile_options(sample-target WARNING) -# ~~~ +# Refer to swift_set_compile_options() for additional detailed information on +# accepted options for this function, which forwards all options. # -# will disable warnings-as-errors for sample-target only -# -# All flags will be checked for suitability with the in-use compilers before -# being selected. This is important since Swift code tends to be compiled with a -# wide variety of compilers which may not support the same set of flags and -# options. Therefore, it should be preferred to use this function to set -# compiler flags and options rather than target_compile_options() -# -# NOTE: user's can call on EXTRA_FLAGS to augment the default list of flags -# before flags are removed with REMOVE and subsequently added with ADD. -# - -include(CheckCCompilerFlag) -include(CheckCXXCompilerFlag) - -function(swift_set_compile_options) - set(argOption "WARNING" "NO_EXCEPTIONS" "EXCEPTIONS" "NO_RTTI" "RTTI") - set(argSingle "") - set(argMulti "ADD" "REMOVE" "EXTRA_FLAGS") - - unset(x_WARNING) - unset(x_ADD) - unset(x_REMOVE) - unset(x_EXTRA_FLAGS) - - cmake_parse_arguments(x "${argOption}" "${argSingle}" "${argMulti}" ${ARGN}) - set(targets ${x_UNPARSED_ARGUMENTS}) - - if(x_RTTI AND x_NO_RTTI) - message(FATAL_ERROR "RTTI and NO_RTTI can't be used together") - endif() - - if(x_EXCEPTIONS AND x_NO_EXCEPTIONS) - message(FATAL_ERROR "EXCEPTIONS and NO_EXCEPTIONS can't be used together") - endif() +# In addition to relaying the call, this function adds common compiler options +# and overrides the default behavior of swift with regard to exceptions and +# RTTI. By default, both are enabled. - foreach(flag ${x_ADD} ${x_REMOVE}) - if(${flag} STREQUAL "-Werror") - message( - FATAL_ERROR - "Do not specify -Werror directly, use WARNING to disable -Werror") - endif() - if(${flag} STREQUAL "-Wno-error") - message( - FATAL_ERROR - "Do not specify -Wno-error directly, use WARNING to disable -Werror") - endif() - endforeach() - - if(DEFINED SWIFT_COMPILER_WARNING_ARE_ERROR) - if(SWIFT_COMPILER_WARNING_ARE_ERROR) - if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") - set(all_flags /WX) - else() - set(all_flags -Werror -Wno-error=deprecated-declarations) - endif() - else() - set(all_flags -Wno-error) - endif() - else() - if(NOT x_WARNING) - if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") - set(all_flags /WX) - else() - set(all_flags -Werror -Wno-error=deprecated-declarations) - endif() - endif() - endif() +function(asap_set_compile_options) + swift_set_compile_options(EXCEPTIONS RTTI ${ARGV}) if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") # using Clang - list( - APPEND - all_flags + swift_set_compile_options( + ADD -Weverything -Wno-c++98-compat -Wno-c++98-compat-pedantic -Wno-c++98-c++11-compat-pedantic -Wno-padded - -Wno-documentation-unknown-command - -Wno-switch-enum - -Wno-unused-macros - -Wno-disabled-macro-expansion) + -Wno-documentation-unknown-command) + # -Wno-switch-enum -Wno-unused-macros -Wno-disabled-macro-expansion) elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") # using GCC - list( - APPEND - all_flags - -Wall - -Wextra - -Wcast-align - -Wcast-qual + swift_set_compile_options( + ADD -Wctor-dtor-privacy - -Wdisabled-optimization - -Wformat=2 -Winit-self -Wmissing-declarations - -Wmissing-include-dirs -Wold-style-cast -Woverloaded-virtual - -Wredundant-decls - -Wshadow -Wsign-conversion -Wsign-promo - -Wundef - -Werror - -Wno-unused) + -Wundef) if(NOT DEFINED CMAKE_CXX_CLANG_TIDY) - list(APPEND all_flags -Wlogical-op -Wstrict-null-sentinel) + swift_set_compile_options(ADD -Wlogical-op -Wstrict-null-sentinel) endif() elseif(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") # using Visual Studio C++ - list(APPEND all_flags /EHsc /MP /W4) - endif() - - if(x_REMOVE) - foreach(flag ${x_REMOVE}) - list(FIND all_flags ${flag} found) - if(found EQUAL -1) - message( - FATAL_ERROR - "Compiler flag '${flag}' specified for removal is not part of the set of common compiler flags" - ) - endif() + set(argOption "WARNING" "NO_EXCEPTIONS" "EXCEPTIONS" "NO_RTTI" "RTTI") + set(argSingle "") + set(argMulti "ADD" "REMOVE" "EXTRA_FLAGS") + cmake_parse_arguments(x "${argOption}" "${argSingle}" "${argMulti}" ${ARGN}) + set(targets ${x_UNPARSED_ARGUMENTS}) + foreach(target ${targets}) + target_compile_options(${target} PRIVATE /EHsc /MP /W4) endforeach() - list(REMOVE_ITEM all_flags ${x_REMOVE}) endif() - list(APPEND all_flags ${x_ADD}) - - unset(final_flags) - - get_property(enabled_languages GLOBAL PROPERTY ENABLED_LANGUAGES) - list(FIND enabled_languages "C" c_enabled) - list(FIND enabled_languages "CXX" cxx_enabled) - - foreach(flag ${all_flags}) - string(TOUPPER ${flag} sanitised_flag) - string(REPLACE "+" "X" sanitised_flag ${sanitised_flag}) - string(REGEX REPLACE "[^A-Za-z_0-9]" "_" sanitised_flag ${sanitised_flag}) - - set(c_supported HAVE_C_FLAG_${sanitised_flag}) - string(REGEX REPLACE "_+" "_" c_supported ${c_supported}) - set(cxx_supported HAVE_CXX_FLAG_${sanitised_flag}) - string(REGEX REPLACE "_+" "_" cxx_supported ${cxx_supported}) - - if(${c_enabled} GREATER -1) - if(MSVC) - check_c_compiler_flag("/WX ${flag}" ${c_supported}) - else() - check_c_compiler_flag("-Werror ${flag}" ${c_supported}) - endif() - if(${${c_supported}}) - list(APPEND final_flags $<$:${flag}>) - endif() - endif() - - if(${cxx_enabled} GREATER -1) - if(MSVC) - check_cxx_compiler_flag("/WX ${flag}" ${cxx_supported}) - else() - check_cxx_compiler_flag("-Werror ${flag}" ${cxx_supported}) - endif() - if(${${cxx_supported}}) - list(APPEND final_flags $<$:${flag}>) - endif() - endif() - endforeach() - - foreach(target ${targets}) - target_compile_options(${target} PRIVATE ${final_flags}) - endforeach() - -endfunction() - -function(asap_set_compile_options) - swift_set_compile_options(${ARGV}) endfunction() # ------------------------------------------------------------------------------ diff --git a/cmake/TestTargets.cmake b/cmake/TestTargets.cmake index 017225c..27ee346 100644 --- a/cmake/TestTargets.cmake +++ b/cmake/TestTargets.cmake @@ -8,14 +8,20 @@ include(common/TestTargets) macro(asap_add_test target) swift_add_test("${target}" ${ARGN}) - - asap_set_compile_options(${target} WARNING) + # Set some common private compiler defines asap_set_compile_definitions(${target}) + # Set some common compiler options + asap_set_compile_options(${target}) if(TARGET gtest AND BUILD_SHARED_LIBS) target_compile_definitions(${target} PRIVATE GTEST_LINKED_AS_SHARED_LIBRARY) if(MSVC) target_compile_options(${target} PRIVATE /wd4251) endif() + if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") + asap_set_compile_options( + ${target} ADD "-Wno-used-but-marked-unused" "-Wno-global-constructors" + "-Wno-unused-member-function") + endif() endif() set_target_properties(${target} PROPERTIES FOLDER "Unit Tests") endmacro() @@ -23,3 +29,17 @@ endmacro() macro(asap_add_test_runner target) swift_add_test_runner("${target}" ${ARGN}) endmacro() + +function(asap_add_test_library target) + swift_add_test_library("${target}" ${ARGN}) + # Set some common private compiler defines + asap_set_compile_definitions(${target}) + # Set some common compiler options + asap_set_compile_options(${target}) + set_target_properties( + ${target} + PROPERTIES FOLDER "Test Libraries" + VERSION ${META_MODULE_VERSION} + SOVERSION ${META_MODULE_VERSION_MAJOR} + DEBUG_POSTFIX "d") +endfunction() From 868718330855390702bf99676d46e30c1aaea969 Mon Sep 17 00:00:00 2001 From: Abdessattar Sassi <457645+abdes@users.noreply.github.com> Date: Sat, 20 Aug 2022 14:39:50 +0400 Subject: [PATCH 6/9] style: wrap long lines --- CHANGELOG.md | 182 ++++++++++++++++++++++++++++++++++----------------- 1 file changed, 121 insertions(+), 61 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f0470cd..d3ff0cf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,8 @@ # Changelog -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. +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.3.6](http://github.com/abdes/asap/compare/v4.3.5...v4.3.6) (2022-08-11) @@ -43,8 +45,10 @@ there. 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, dependencies, project version, ... - * `ops` Commits, that affect operational components like infrastructure, deployment, backup, recovery, ... + * `build` Commits, that affect build components like build tool, ci pipeline, + dependencies, project version, ... + * `ops` Commits, that affect operational components like infrastructure, + deployment, backup, recovery, ... * **#8:** add standard ccov excluded directories by default ([a8aabb3](http://github.com/abdes/asap/commit/a8aabb31d3ea6b0c5a50e13bf366f092ca724537)), @@ -60,52 +64,70 @@ there. ### Bug Fixes -* alias variable to enable/disable building tests ([3992b0f](http://github.com/abdes/asap/commit/3992b0f7d500e653532bd0f206489058d99ad2d0)) -* typo in variable name to enable/disable building tests ([9950fe2](http://github.com/abdes/asap/commit/9950fe2dcbe6c284e9ce32ce6a455e4a3a499ec4)) +* alias variable to enable/disable building tests + ([3992b0f](http://github.com/abdes/asap/commit/3992b0f7d500e653532bd0f206489058d99ad2d0)) +* 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 ([9c33906](http://github.com/abdes/asap/commit/9c339069acd9ab6355f8156f2e8eaf81c382342c)) +* 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 ([5034b22](http://github.com/abdes/asap/commit/5034b22d39e5cb54acd51baa0bf815dbdd82093b)) +* [#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 ([202c27a](http://github.com/abdes/asap/commit/202c27a628f7f35ae17f2df91c1d95f67360abea)) +- 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 ([26c01c8](http://github.com/abdes/asap/commit/26c01c8bcf98c6b47e6622dea91a6c6e10bc978c)) -- add CPM as preferred way of managing third party deps ([5a33f70](http://github.com/abdes/asap/commit/5a33f70a15a64c84f0a13b4286460f9df20459a5)) -- add tutorial videos ([cb13248](http://github.com/abdes/asap/commit/cb13248244cddd0dc2c187893556fad7aa4f08b7)) -- fix thumbnail and links of project docs video ([1a6269e](http://github.com/abdes/asap/commit/1a6269eef8999504aba8105d4c446a93e41c988b)) -- how to report security vulnerabilities ([46426e9](http://github.com/abdes/asap/commit/46426e9d44f3c4e8ee0b3fdd98e2ee56d13f8890)) -- improve the key features section ([79119ba](http://github.com/abdes/asap/commit/79119ba52f578a28dfdeb1ce59bba67c3fbcd3c1)) -- include build status badges for all branches ([2b98ae1](http://github.com/abdes/asap/commit/2b98ae11ace8fa756c825686018a3a328ce27eca)) -- revamp the project README ([e72c4c3](http://github.com/abdes/asap/commit/e72c4c3288d565b34b137ab785abe90370052258)) -- rewrite the contributing section ([c7e39c4](http://github.com/abdes/asap/commit/c7e39c4cfa6033aac42befe5ed994089e601b6a0)) -- update instructions for repo from template scenario ([1cafdb5](http://github.com/abdes/asap/commit/1cafdb57f86a4b61a736b3411791ae96ca684f33)) -- update project docs video ([c7f79fc](http://github.com/abdes/asap/commit/c7f79fc64900cfa9ec3d2466300d1d32830b32f1)) +- add badge for OpenSSF best practices + ([26c01c8](http://github.com/abdes/asap/commit/26c01c8bcf98c6b47e6622dea91a6c6e10bc978c)) +- add CPM as preferred way of managing third party deps + ([5a33f70](http://github.com/abdes/asap/commit/5a33f70a15a64c84f0a13b4286460f9df20459a5)) +- add tutorial videos + ([cb13248](http://github.com/abdes/asap/commit/cb13248244cddd0dc2c187893556fad7aa4f08b7)) +- fix thumbnail and links of project docs video + ([1a6269e](http://github.com/abdes/asap/commit/1a6269eef8999504aba8105d4c446a93e41c988b)) +- how to report security vulnerabilities + ([46426e9](http://github.com/abdes/asap/commit/46426e9d44f3c4e8ee0b3fdd98e2ee56d13f8890)) +- improve the key features section + ([79119ba](http://github.com/abdes/asap/commit/79119ba52f578a28dfdeb1ce59bba67c3fbcd3c1)) +- include build status badges for all branches + ([2b98ae1](http://github.com/abdes/asap/commit/2b98ae11ace8fa756c825686018a3a328ce27eca)) +- revamp the project README + ([e72c4c3](http://github.com/abdes/asap/commit/e72c4c3288d565b34b137ab785abe90370052258)) +- rewrite the contributing section + ([c7e39c4](http://github.com/abdes/asap/commit/c7e39c4cfa6033aac42befe5ed994089e601b6a0)) +- update instructions for repo from template scenario + ([1cafdb5](http://github.com/abdes/asap/commit/1cafdb57f86a4b61a736b3411791ae96ca684f33)) +- 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 ([412730f](http://github.com/abdes/asap/commit/412730f86679d7ccd350cadf5649b7a489376cae)) +- make ccache usable on all platforms + ([412730f](http://github.com/abdes/asap/commit/412730f86679d7ccd350cadf5649b7a489376cae)) ### Bug Fixes -- use only white-listed properties for interface library ([227de02](http://github.com/abdes/asap/commit/227de026878beb9dd9679d0cad12cf25bce16c4a)) +- 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) @@ -121,8 +143,11 @@ docs: add last-updated-on timestamp ### Bug Fixes -- 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 ([486144c](http://github.com/abdes/asap/commit/486144c46222c22861b0a14f9dc002d148a31f24)), closes [#4](http://github.com/abdes/asap/issues/4) +- 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 + ([486144c](http://github.com/abdes/asap/commit/486144c46222c22861b0a14f9dc002d148a31f24)), + closes [#4](http://github.com/abdes/asap/issues/4) ## [4.1.5](http://github.com/abdes/asap/compare/v4.1.4...v4.1.5) (2022-03-06) @@ -143,20 +168,34 @@ and streamline the generated targets. ### Bug Fixes -- always use top level build dir for output ([1b01db2](http://github.com/abdes/asap/commit/1b01db2402bc52944646bcde3cf525315a4e0e1b)) -- doxygen and sphinx target conflict with modules ([02375ff](http://github.com/abdes/asap/commit/02375ff4a33e34a8e0cb9307ef4eb6de3271e945)) -- generate doc only if project is master ([82190fa](http://github.com/abdes/asap/commit/82190fa6562f5e51dbbab660bcab8dc265e99a0b)) -- make doxygen targets sub-project friendly ([546fe73](http://github.com/abdes/asap/commit/546fe73ded53721dddbac311e9db41e4146b8ad2)) -- make gtest work again ([3ce658c](http://github.com/abdes/asap/commit/3ce658c5f1eb216a3286717e7f80827b96ff3b49)) -- make sphinx targets sub-project friendly ([024cc77](http://github.com/abdes/asap/commit/024cc77d17ed134ed5f3f4eea32226b07b05aad6)) -- only add clang-format/tidy targets if master project ([060f082](http://github.com/abdes/asap/commit/060f082714e039eb4c2c2e198b5caed74690e8af)) -- only install files if requested to install ([9caaf9b](http://github.com/abdes/asap/commit/9caaf9b47e138be3f9845d6d58ebc21ff8dfa83b)) -- reorganize third_party modules for use of FetchContent ([cc65bc2](http://github.com/abdes/asap/commit/cc65bc2219dbe38197107bae71252444994e118c)) -- use correct tagets for doc builds ([559558e](http://github.com/abdes/asap/commit/559558e8eac3043eef19986cc2ae6d6dfd937be8)) -- use correct url for logo image ([96d1e01](http://github.com/abdes/asap/commit/96d1e01d971bd2f33faaebfc060082023f3a5209)) -- use correct url for master index page ([a56c327](http://github.com/abdes/asap/commit/a56c327ff3d7ab14d7a499fc4997279efd2647fe)) -- use lower case META_PROJECT_ID ([311e433](http://github.com/abdes/asap/commit/311e433e8698ff6385c2cda256bff83982596ed0)) -- wrong variable used for target name ([829f351](http://github.com/abdes/asap/commit/829f351d22b384ddc060ae2df47ff9e801089dd2)) +- always use top level build dir for output + ([1b01db2](http://github.com/abdes/asap/commit/1b01db2402bc52944646bcde3cf525315a4e0e1b)) +- doxygen and sphinx target conflict with modules + ([02375ff](http://github.com/abdes/asap/commit/02375ff4a33e34a8e0cb9307ef4eb6de3271e945)) +- generate doc only if project is master + ([82190fa](http://github.com/abdes/asap/commit/82190fa6562f5e51dbbab660bcab8dc265e99a0b)) +- make doxygen targets sub-project friendly + ([546fe73](http://github.com/abdes/asap/commit/546fe73ded53721dddbac311e9db41e4146b8ad2)) +- make gtest work again + ([3ce658c](http://github.com/abdes/asap/commit/3ce658c5f1eb216a3286717e7f80827b96ff3b49)) +- make sphinx targets sub-project friendly + ([024cc77](http://github.com/abdes/asap/commit/024cc77d17ed134ed5f3f4eea32226b07b05aad6)) +- only add clang-format/tidy targets if master project + ([060f082](http://github.com/abdes/asap/commit/060f082714e039eb4c2c2e198b5caed74690e8af)) +- only install files if requested to install + ([9caaf9b](http://github.com/abdes/asap/commit/9caaf9b47e138be3f9845d6d58ebc21ff8dfa83b)) +- reorganize third_party modules for use of FetchContent + ([cc65bc2](http://github.com/abdes/asap/commit/cc65bc2219dbe38197107bae71252444994e118c)) +- use correct tagets for doc builds + ([559558e](http://github.com/abdes/asap/commit/559558e8eac3043eef19986cc2ae6d6dfd937be8)) +- use correct url for logo image + ([96d1e01](http://github.com/abdes/asap/commit/96d1e01d971bd2f33faaebfc060082023f3a5209)) +- use correct url for master index page + ([a56c327](http://github.com/abdes/asap/commit/a56c327ff3d7ab14d7a499fc4997279efd2647fe)) +- use lower case META_PROJECT_ID + ([311e433](http://github.com/abdes/asap/commit/311e433e8698ff6385c2cda256bff83982596ed0)) +- 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) @@ -176,8 +215,10 @@ refactor the docs for easier maintenance and use in forked projects. ### Bug Fixes -- 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 ([be28f42](http://github.com/abdes/asap/commit/be28f429eddde8f258a08e84722e4fcaf975b384)) +- 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 + ([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) @@ -187,8 +228,10 @@ refactor the docs for easier maintenance and use in forked projects. ### Features -- overload pattern for variant visitation on the fly ([53ea7cc](http://github.com/abdes/asap/commit/53ea7cc74e89913cbf59eda2e30bd36c356e6acd)) -- refactor: trim the project to the bare minimum([8d48a56](https://github.com/abdes/asap/commit/8d48a56ef0db2359aa80b5e5b2854802dc6a45f0)) +- overload pattern for variant visitation on the fly + ([53ea7cc](http://github.com/abdes/asap/commit/53ea7cc74e89913cbf59eda2e30bd36c356e6acd)) +- 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 can be cloned and used for new projects. The bare minimum is the cmake build @@ -201,19 +244,24 @@ refactor the docs for easier maintenance and use in forked projects. ### Bug Fixes -- use separate sphinx cache dir for each module ([03f36fc](http://github.com/abdes/asap/commit/03f36fc96c78c51b441feb9a7b9c70d19a2125c7)) +- 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 ([85b8000](http://github.com/abdes/asap/commit/85b8000e91dd105c0f90a62b1824957b68ce9c03)) +- 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 ([5966912](http://github.com/abdes/asap/commit/59669122d3ea8565878667e6f09b124bc7da1b99)) -- doxygen doc generation uses wrong module info ([8833474](http://github.com/abdes/asap/commit/8833474402c523a3f2eda10b8927da46989f4bba)) -- need to hardcode `asap` when linking `common` ([e038a70](http://github.com/abdes/asap/commit/e038a702ce8727fa1a6c8b3a45cb4bb211281db5)) +- **doc:** wrong chapter title in logging module page + ([5966912](http://github.com/abdes/asap/commit/59669122d3ea8565878667e6f09b124bc7da1b99)) +- doxygen doc generation uses wrong module info + ([8833474](http://github.com/abdes/asap/commit/8833474402c523a3f2eda10b8927da46989f4bba)) +- 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) @@ -239,14 +287,20 @@ refactor the docs for easier maintenance and use in forked projects. ### Features -- add support for .editorconfig ([5a7a689](http://github.com/abdes/asap/commit/5a7a6892f7c05798e79c6f81e9eef3b0a6256ca1)) -- provide a way to distinguish between debug and release builds via preprocessor define ([bbd84a2](http://github.com/abdes/asap/commit/bbd84a2c32c9833f79b442e202b647f93946b105)) +- add support for .editorconfig + ([5a7a689](http://github.com/abdes/asap/commit/5a7a6892f7c05798e79c6f81e9eef3b0a6256ca1)) +- 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 ([60acc65](http://github.com/abdes/asap/commit/60acc65fcc8d529a69f3617d792376be3e54b6ce)) -- cmake option was placed in the wrong command ([b634b15](http://github.com/abdes/asap/commit/b634b153db975a8bc8715e82f7fafdc214504cfa)) -- clean the logging API implementation ([25535c7](http://github.com/abdes/asap/commit/25535c76c0586d53f7c6c55db250a251f0c5390b)) +- 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 + ([b634b15](http://github.com/abdes/asap/commit/b634b153db975a8bc8715e82f7fafdc214504cfa)) +- 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) @@ -303,9 +357,12 @@ refactor the docs for easier maintenance and use in forked projects. ### Bug Fixes -- "-Wreserved-identifier" only if not APPLE ([05fac12](http://github.com/abdes/asap/commit/05fac12d37978c6651c299e6ad1cc64dfed88fa0)) -- cmake require c++ 14 in all modules ([f05c9a6](http://github.com/abdes/asap/commit/f05c9a63e97dbcbef3e7d8188a04e719e2247d62)) -- use lower-case name for sphinx ([f3005b5](http://github.com/abdes/asap/commit/f3005b5bd4055b16a57cdcb3af70a2f32b1c5809)) +- "-Wreserved-identifier" only if not APPLE + ([05fac12](http://github.com/abdes/asap/commit/05fac12d37978c6651c299e6ad1cc64dfed88fa0)) +- cmake require c++ 14 in all modules + ([f05c9a6](http://github.com/abdes/asap/commit/f05c9a63e97dbcbef3e7d8188a04e719e2247d62)) +- 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) @@ -327,16 +384,19 @@ refactor the docs for easier maintenance and use in forked projects. - 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. +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 ([46f4dd9](http://github.com/abdes/asap/commit/46f4dd96edb1148e0772a1539b989fd80f3821e4)) +- 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 ([7b827fa](http://github.com/abdes/asap/commit/7b827fab2ae28ba903c69ab5acdf249cb3e55d85)) -- replace cmake compiler detection with hedley ([8bf0a3d](http://github.com/abdes/asap/commit/8bf0a3d53fcdba65497491cbd63c1dcffcba8467)) +- add support for Conventional Commits and auto Changelog + ([7b827fa](http://github.com/abdes/asap/commit/7b827fab2ae28ba903c69ab5acdf249cb3e55d85)) +- replace cmake compiler detection with hedley + ([8bf0a3d](http://github.com/abdes/asap/commit/8bf0a3d53fcdba65497491cbd63c1dcffcba8467)) From f23d9d485397ef3995481c101a35f87c720c94e1 Mon Sep 17 00:00:00 2001 From: Abdessattar Sassi <457645+abdes@users.noreply.github.com> Date: Sat, 20 Aug 2022 14:47:58 +0400 Subject: [PATCH 7/9] version bump to 4.4.0 --- CHANGELOG.md | 27 +++++++++++++++++++++++++++ CMakeLists.txt | 4 ++-- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d3ff0cf..2a62d39 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,33 @@ 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.4.0](http://github.com/abdes/asap/compare/v4.3.6...v4.4.0) (2022-08-20) + + +### Bug Fixes + +* [#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 + `ASAP__API` macros for symbol visibility. As a general rule, do not + 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 + management. + ([78ae493](http://github.com/abdes/asap/commit/78ae4933f2e263a55f6537e66347c6b11a24b961)) + + In general, asap target helpers, such as asap_add_library, will seamlessly + manage compiler options behind the scenes, relaying first to `cmake/common` + modules and then overriding/adding/removing options based on asap preferences. + Such options can further be customized by the calling module using the + `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 + ([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) Minor update to directly use the `cmake/common` submodule from diff --git a/CMakeLists.txt b/CMakeLists.txt index 6b28aca..5acf5bc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -39,8 +39,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 "3") -set(META_VERSION_PATCH "6") +set(META_VERSION_MINOR "4") +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})") From 6d42d83bfdd16123f05a69726058dc5f103143be Mon Sep 17 00:00:00 2001 From: Abdessattar Sassi <457645+abdes@users.noreply.github.com> Date: Sat, 20 Aug 2022 15:06:14 +0400 Subject: [PATCH 8/9] fix: #12 disable used-but-marked-unused --- .clang-tidy | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.clang-tidy b/.clang-tidy index 6c5b018..c28ac39 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -11,8 +11,9 @@ Checks: > portability-*, readability-*, -cppcoreguidelines-macro-usage, - -hicpp-signed-bitwise, + -google-runtime-references -hicpp-exception-baseclass, + -hicpp-signed-bitwise, -readability-function-cognitive-complexity, - -google-runtime-references + -used-but-marked-unused, HeaderFilterRegex: ".*/[common|logging]/.*" From e9b00bdbf53cfbbebfee2dc8105e6eed7f49f003 Mon Sep 17 00:00:00 2001 From: Abdessattar Sassi <457645+abdes@users.noreply.github.com> Date: Sat, 20 Aug 2022 19:41:21 +0400 Subject: [PATCH 9/9] version bump to 4.4.1 --- CHANGELOG.md | 185 ++++++++++++++++++++++++++----------------------- CMakeLists.txt | 2 +- 2 files changed, 98 insertions(+), 89 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2a62d39..b78ff8f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,8 +4,17 @@ 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.4.0](http://github.com/abdes/asap/compare/v4.3.6...v4.4.0) (2022-08-20) +## [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 + ([6d42d83](http://github.com/abdes/asap/commit/6d42d83bfdd16123f05a69726058dc5f103143be)) + + For clang-tidy, this check generates many errors with google test framework + and as such is not worth the trouble. + +## [4.4.0](http://github.com/abdes/asap/compare/v4.3.6...v4.4.0) (2022-08-20) ### Bug Fixes @@ -34,7 +43,7 @@ for commit guidelines. ## [4.3.6](http://github.com/abdes/asap/compare/v4.3.5...v4.3.6) (2022-08-11) Minor update to directly use the `cmake/common` submodule from -https://github.com/swift-nav/cmake now that all asap fixes have been merged over + now that all asap fixes have been merged over there. ## [4.3.5](http://github.com/abdes/asap/compare/v4.3.4...v4.3.5) (2022-08-11) @@ -114,53 +123,53 @@ there. ### 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) @@ -170,9 +179,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) @@ -195,45 +204,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) @@ -242,22 +251,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 @@ -271,159 +280,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 5acf5bc..49a480e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -40,7 +40,7 @@ set(META_AUTHOR_DOMAIN "https://github.com/abdes/asap") set(META_AUTHOR_MAINTAINER "Abdessattar Sassi") set(META_VERSION_MAJOR "4") set(META_VERSION_MINOR "4") -set(META_VERSION_PATCH "0") +set(META_VERSION_PATCH "1") 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})")