From ba0c88783012b0ad87dffde1656f93e4e95f822a Mon Sep 17 00:00:00 2001 From: Joel Rosdahl Date: Sun, 23 Aug 2020 20:10:36 +0200 Subject: [PATCH] =?utf8?q?Add=20CMake=20build=20type=20=E2=80=9CCI?= =?utf8?q?=E2=80=9D=20like=20=E2=80=9CRelWithDebInfo=E2=80=9D=20but=20with?= =?utf8?q?out=20-DNDEBUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- CMakeLists.txt | 1 + cmake/CIBuildType.cmake | 31 +++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 cmake/CIBuildType.cmake 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) -- 2.47.3