mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-16 22:37:30 +08:00
MSVC: Restore _DEBUG preprocessor definition in RC debug builds
In commit v3.8.0-rc1~304^2 (MSVC: Do not define _DEBUG explicitly when using /MDd, 2016-11-15) we removed the `_DEBUG` preprocessor definition from MSVC C and C++ flags because the `cl` compiler automatically defines it in Debug builds anyway. However, the VS generators propagate C preprocessor definitions to the RC (Windows Resource Compiler) tool. This means that we used to explicitly define `_DEBUG` for RC debug builds. Therefore existing project code may expect the definition to be there even though the `rc` compiler itself does not implicitly define `_DEBUG` in debug builds. Add the `_DEBUG` flag to the default `CMAKE_RC_FLAGS_DEBUG` instead to restore this definition for RC debug builds. This also makes it available consistently in VS, Ninja, and Makefile generators. Fixes: #16745
This commit is contained in:
@@ -310,6 +310,9 @@ macro(__windows_compiler_msvc lang)
|
||||
if(NOT CMAKE_RC_FLAGS_INIT)
|
||||
string(APPEND CMAKE_RC_FLAGS_INIT " ${_PLATFORM_DEFINES} ${_PLATFORM_DEFINES_${lang}}")
|
||||
endif()
|
||||
if(NOT CMAKE_RC_FLAGS_DEBUG_INIT)
|
||||
string(APPEND CMAKE_RC_FLAGS_DEBUG_INIT " /D_DEBUG")
|
||||
endif()
|
||||
|
||||
enable_language(RC)
|
||||
set(CMAKE_NINJA_CMCLDEPS_RC 1)
|
||||
|
Reference in New Issue
Block a user