if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") # 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()