diff options
| author | Léo Lam <leo@leolam.fr> | 2021-04-25 19:41:07 +0200 |
|---|---|---|
| committer | Léo Lam <leo@leolam.fr> | 2021-04-27 12:54:18 +0200 |
| commit | d0484a9ea9331f2cedb080f06944d737343414f1 (patch) | |
| tree | 9e9af96acde2991573af2789c07bf31b377e6241 /CMake | |
| parent | 20d00dfc79c5eb10b5a7578b29a712a08bf8f44a (diff) | |
CMake: Fix MSVC flags for Release/RelWithDebInfo
See https://gitlab.kitware.com/cmake/cmake/-/issues/20812
Manually redefine MSVC flags to match Visual Studio defaults
and ensure that Release builds generate debug info.
Diffstat (limited to 'CMake')
| -rw-r--r-- | CMake/FlagsOverride.cmake | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/CMake/FlagsOverride.cmake b/CMake/FlagsOverride.cmake index 39c55aa62a..d52cf4b153 100644 --- a/CMake/FlagsOverride.cmake +++ b/CMake/FlagsOverride.cmake @@ -1,7 +1,11 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") - foreach(f CMAKE_C_FLAGS_DEBUG CMAKE_CXX_FLAGS_DEBUG CMAKE_C_FLAGS_RELWITHDEBINFO CMAKE_CXX_FLAGS_RELWITHDEBINFO) - if("${${f}}" MATCHES "/Zi") - string(REGEX REPLACE "/Zi" "/Z7" "${f}" "${${f}}") - endif() - endforeach() -endif()
\ No newline at end of file + # The default MSVC flags for Release and RelWithDebInfo are poorly chosen + # (see issue https://gitlab.kitware.com/cmake/cmake/-/issues/20812) + # By default, inlining is disabled for RelWithDebInfo. + # Manually redefine MSVC flags to match Visual Studio defaults + # and ensure that Release builds generate debug info. + foreach(f CMAKE_C_FLAGS_RELWITHDEBINFO CMAKE_C_FLAGS_RELEASE CMAKE_CXX_FLAGS_RELWITHDEBINFO CMAKE_CXX_FLAGS_RELEASE) + # optimize, define NDEBUG, generate debug info + set(${f} "/O2 /DNDEBUG /Z7") + endforeach() +endif() |
