Skip to content

MSVC: Restore _DEBUG preprocessor definition in RC debug builds

Brad King requested to merge brad.king/cmake:vs-rc-defines into master

In commit 6d0b5ff6 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 (closed)

Merge request reports