CMP0043
CMP0043
Ignore COMPILE_DEFINITIONS_ properties
CMake 2.8.12 and lower allowed setting the COMPILE_DEFINITIONS_ target property and COMPILE_DEFINITIONS_ directory property to apply configuration-specific compile definitions.
Since CMake 2.8.10, the COMPILE_DEFINITIONS property has supported generator expressions for setting configuration-dependent content. The continued existence of the suffixed variables is redundant, and causes a maintenance burden. Population of the COMPILE_DEFINITIONS_DEBUG property may be replaced with a population of COMPILE_DEFINITIONS directly or via target_compile_definitions():
# Old Interfaces:
set_property(TARGET tgt APPEND PROPERTY
COMPILE_DEFINITIONS_DEBUG DEBUG_MODE
)
set_property(DIRECTORY APPEND PROPERTY
COMPILE_DEFINITIONS_DEBUG DIR_DEBUG_MODE
)
# New Interfaces:
set_property(TARGET tgt APPEND PROPERTY
COMPILE_DEFINITIONS $<$<CONFIG:Debug>:DEBUG_MODE>
)
target_compile_definitions(tgt PRIVATE $<$<CONFIG:Debug>:DEBUG_MODE>)
set_property(DIRECTORY APPEND PROPERTY
COMPILE_DEFINITIONS $<$<CONFIG:Debug>:DIR_DEBUG_MODE>
)
The OLD
behavior for this policy is to consume the content of the suffixed COMPILE_DEFINITIONS_ target property when generating the compilation command. The NEW
behavior for this policy is to ignore the content of the COMPILE_DEFINITIONS_ target property .
This policy was introduced in CMake version 3.0. CMake version 3.21.0-rc3 warns when the policy is not set and uses OLD
behavior. Use the cmake_policy() command to set it to OLD
or NEW
explicitly.
Note
The OLD
behavior of a policy is deprecated by definition and may be removed in a future version of CMake.
© 2000–2021 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.21/policy/CMP0043.html