From: Joel Rosdahl Date: Sun, 23 Aug 2020 18:10:36 +0000 (+0200) Subject: Add CMake build type “CI” like “RelWithDebInfo” but without -DNDEBUG X-Git-Tag: v4.0~173 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ba0c88783012b0ad87dffde1656f93e4e95f822a;p=thirdparty%2Fccache.git Add CMake build type “CI” like “RelWithDebInfo” but without -DNDEBUG --- diff --git a/CMakeLists.txt b/CMakeLists.txt index e8ee6d0bb..38c347b53 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,6 +21,7 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") # include(StandardSettings) include(StandardWarnings) +include(CIBuildType) include(DefaultBuildType) # diff --git a/cmake/CIBuildType.cmake b/cmake/CIBuildType.cmake new file mode 100644 index 000000000..963bc5007 --- /dev/null +++ b/cmake/CIBuildType.cmake @@ -0,0 +1,31 @@ +# Add a build type called "CI" which is like RelWithDebInfo but with assertions +# enabled, i.e. without passing -DNDEBUG to the compiler. + +set(CMAKE_CXX_FLAGS_CI ${CMAKE_CXX_FLAGS_RELWITHDEBINFO} CACHE STRING + "Flags used by the C++ compiler during CI builds." + FORCE) +set(CMAKE_C_FLAGS_CI ${CMAKE_C_FLAGS_RELWITHDEBINFO} CACHE STRING + "Flags used by the C compiler during CI builds." + FORCE) +set(CMAKE_EXE_LINKER_FLAGS_CI + ${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO} CACHE STRING + "Flags used for linking binaries during CI builds." + FORCE) +set(CMAKE_SHARED_LINKER_FLAGS_CI + ${CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO} CACHE STRING + "Flags used by the shared libraries linker during CI builds." + FORCE) +mark_as_advanced( + CMAKE_CXX_FLAGS_CI + CMAKE_C_FLAGS_CI + CMAKE_EXE_LINKER_FLAGS_CI + CMAKE_SHARED_LINKER_FLAGS_CI) +# Update the documentation string of CMAKE_BUILD_TYPE for GUIs +set(CMAKE_BUILD_TYPE "${CMAKE_BUILD_TYPE}" CACHE STRING + "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel CI." + FORCE) + +string(REPLACE -DNDEBUG "" CMAKE_CXX_FLAGS_CI ${CMAKE_CXX_FLAGS_CI}) +string(REPLACE -DNDEBUG "" CMAKE_C_FLAGS_CI ${CMAKE_C_FLAGS_CI}) +string(STRIP ${CMAKE_CXX_FLAGS_CI} CMAKE_CXX_FLAGS_CI) +string(STRIP ${CMAKE_C_FLAGS_CI} CMAKE_C_FLAGS_CI)