mirror of
https://github.com/Z3Prover/z3
synced 2025-07-20 11:22:04 +00:00
[CMake] Mirror the additional NDEBUG define for non debug builds recently added
by 03a8ef2795
. This relates to #463
Also leave a note regarding ``compiler_flags_override.cmake`` its
value is a bit dubious now that the compiler flags are almost the CMake
defaults.
This commit is contained in:
parent
236875c3ab
commit
e12875ddb5
1 changed files with 14 additions and 8 deletions
|
@ -1,6 +1,6 @@
|
||||||
# This file overrides the default compiler flags for CMake's built-in
|
# This file overrides the default compiler flags for CMake's built-in
|
||||||
# configurations (CMAKE_BUILD_TYPE). Most compiler flags should not be set here.
|
# configurations (CMAKE_BUILD_TYPE). Most compiler flags should not be set here.
|
||||||
# The main purpose is to make sure ``-DNDEBUG`` is never set by default.
|
# The main purpose is to have very fine grained control of the compiler flags.
|
||||||
if (CMAKE_C_COMPILER_ID)
|
if (CMAKE_C_COMPILER_ID)
|
||||||
set(_lang C)
|
set(_lang C)
|
||||||
elseif(CMAKE_CXX_COMPILER_ID)
|
elseif(CMAKE_CXX_COMPILER_ID)
|
||||||
|
@ -9,19 +9,25 @@ else()
|
||||||
message(FATAL_ERROR "Unknown language")
|
message(FATAL_ERROR "Unknown language")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# TODO: The value of doing this is debatable. The flags set here are pretty
|
||||||
|
# much the CMake defaults now (they didn't use to be) and makes extra work for
|
||||||
|
# us when supporting different compilers. Perhaps we should move the remaining
|
||||||
|
# code that sets non-default flags out into the CMakeLists.txt files and remove
|
||||||
|
# any overrides here?
|
||||||
if (("${CMAKE_${_lang}_COMPILER_ID}" MATCHES "Clang") OR ("${CMAKE_${_lang}_COMPILER_ID}" MATCHES "GNU"))
|
if (("${CMAKE_${_lang}_COMPILER_ID}" MATCHES "Clang") OR ("${CMAKE_${_lang}_COMPILER_ID}" MATCHES "GNU"))
|
||||||
# Taken from Modules/Compiler/GNU.cmake but -DNDEBUG is removed
|
# Taken from Modules/Compiler/GNU.cmake
|
||||||
set(CMAKE_${_lang}_FLAGS_INIT "")
|
set(CMAKE_${_lang}_FLAGS_INIT "")
|
||||||
set(CMAKE_${_lang}_FLAGS_DEBUG_INIT "-g -O0")
|
set(CMAKE_${_lang}_FLAGS_DEBUG_INIT "-g -O0")
|
||||||
set(CMAKE_${_lang}_FLAGS_MINSIZEREL_INIT "-Os")
|
set(CMAKE_${_lang}_FLAGS_MINSIZEREL_INIT "-Os -DNDEBUG")
|
||||||
set(CMAKE_${_lang}_FLAGS_RELEASE_INIT "-O3")
|
set(CMAKE_${_lang}_FLAGS_RELEASE_INIT "-O3 -DNDEBUG")
|
||||||
set(CMAKE_${_lang}_FLAGS_RELWITHDEBINFO_INIT "-O2 -g")
|
set(CMAKE_${_lang}_FLAGS_RELWITHDEBINFO_INIT "-O2 -g -DNDEBUG")
|
||||||
# FIXME: Remove "x.." when CMP0054 is set to NEW
|
# FIXME: Remove "x.." when CMP0054 is set to NEW
|
||||||
elseif ("x${CMAKE_${_lang}_COMPILER_ID}" STREQUAL "xMSVC")
|
elseif ("x${CMAKE_${_lang}_COMPILER_ID}" STREQUAL "xMSVC")
|
||||||
|
# FIXME: Perhaps we should be using /MD instead?
|
||||||
set(CMAKE_${_lang}_FLAGS_DEBUG_INIT "/MTd /Zi /Ob0 /Od /RTC1")
|
set(CMAKE_${_lang}_FLAGS_DEBUG_INIT "/MTd /Zi /Ob0 /Od /RTC1")
|
||||||
set(CMAKE_${_lang}_FLAGS_MINSIZEREL_INIT "/MT /O1 /Ob1")
|
set(CMAKE_${_lang}_FLAGS_MINSIZEREL_INIT "/MT /O1 /Ob1 /D NDEBUG")
|
||||||
set(CMAKE_${_lang}_FLAGS_RELEASE_INIT "/MT /O2 /Ob2")
|
set(CMAKE_${_lang}_FLAGS_RELEASE_INIT "/MT /O2 /Ob2 /D NDEBUG")
|
||||||
set(CMAKE_${_lang}_FLAGS_RELWITHDEBINFO_INIT "/MT /Zi /O2 /Ob1")
|
set(CMAKE_${_lang}_FLAGS_RELWITHDEBINFO_INIT "/MT /Zi /O2 /Ob1 /D NDEBUG")
|
||||||
# Override linker flags (see Windows-MSVC.cmake for CMake's defaults)
|
# Override linker flags (see Windows-MSVC.cmake for CMake's defaults)
|
||||||
# The stack size comes from the Python build system.
|
# The stack size comes from the Python build system.
|
||||||
set(_msvc_stack_size "8388608")
|
set(_msvc_stack_size "8388608")
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue