diff options
author | Viktor Szakats <commit@vsz.me> | 2024-03-11 15:31:14 +0000 |
---|---|---|
committer | Brent Cook <busterb@gmail.com> | 2024-03-13 10:59:53 -0500 |
commit | 25bf3a5522a84604845cf7f9cc84eea3ab82b6bd (patch) | |
tree | 87074876269c822d0015a6f35a781d402987b416 | |
parent | cf501238f155ff71b724e72272f5ccacec95d170 (diff) | |
download | portable-25bf3a5522a84604845cf7f9cc84eea3ab82b6bd.tar.gz portable-25bf3a5522a84604845cf7f9cc84eea3ab82b6bd.tar.bz2 portable-25bf3a5522a84604845cf7f9cc84eea3ab82b6bd.zip |
cmake: disable default NDEBUG differently
Before this patch `NDEBUG` was force-disabled, preventing a build with
debug asserts disabled.
After this patch `NDEBUG` works again when passed as a custom build
option, e.g.: `-DCMAKE_C_FLAGS=-DNDEBUG`
Previously submitted as #988, which was merged, but the commit vanished
from master and ended up missing from both 3.8.3 and 3.9.0 releases.
-rw-r--r-- | CMakeLists.txt | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 477e51f..8abf3e3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt | |||
@@ -62,8 +62,13 @@ if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) | |||
62 | STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo") | 62 | STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo") |
63 | endif() | 63 | endif() |
64 | 64 | ||
65 | # Enable asserts regardless of build type | 65 | # Do not disable assertions based on CMAKE_BUILD_TYPE |
66 | add_definitions(-UNDEBUG) | 66 | foreach(_build_type "Release" "MinSizeRel" "RelWithDebInfo") |
67 | foreach(_lang C CXX) | ||
68 | string(TOUPPER "CMAKE_${_lang}_FLAGS_${_build_type}" _var) | ||
69 | string(REGEX REPLACE "(^| )[/-]D *NDEBUG($| )" " " ${_var} "${${_var}}") | ||
70 | endforeach() | ||
71 | endforeach() | ||
67 | 72 | ||
68 | set(BUILD_NC true) | 73 | set(BUILD_NC true) |
69 | 74 | ||