CMP0043¶
警告
此策略的 OLD
行为已在 CMake 版本 4.0 中移除。此策略必须通过调用 cmake_minimum_required()
或 cmake_policy()
设置为 NEW
。
忽略 COMPILE_DEFINITIONS_<Config> 属性
CMake 2.8.12 及更低版本允许设置 COMPILE_DEFINITIONS_<CONFIG>
目标属性和 COMPILE_DEFINITIONS_<CONFIG>
目录属性来应用配置特定的编译定义。
自从 CMake 2.8.10,COMPILE_DEFINITIONS
属性已经支持 generator expressions
用于设置依赖于配置的内容。带后缀的变量的持续存在是冗余的,并导致维护负担。COMPILE_DEFINITIONS_DEBUG
属性的填充可以被替换为直接填充 COMPILE_DEFINITIONS
或通过 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>
)
此策略的 OLD
行为是在生成编译命令时使用带后缀的 COMPILE_DEFINITIONS_<CONFIG>
目标属性的内容。此策略的 NEW
行为是忽略 COMPILE_DEFINITIONS_<CONFIG>
目标属性的内容。
此策略在 CMake 版本 3.0 中引入。在 CMake 版本 4.0 中移除之前,它可以通过 cmake_policy()
或 cmake_minimum_required()
设置。如果未设置,CMake 会发出警告,并使用 OLD
行为。