CMP0043¶
忽略 COMPILE_DEFINITIONS_<Config> 属性
CMake 2.8.12 及更低版本允许设置 COMPILE_DEFINITIONS_<CONFIG>
目标属性和 COMPILE_DEFINITIONS_<CONFIG>
目录属性来应用特定于配置的编译定义。
自 CMake 2.8.10 起,COMPILE_DEFINITIONS
属性支持了 generator expressions
来设置与配置相关的变量。后缀变量持续存在是多余的,而且会造成维护负担。填充 COMPILE_DEFINITIONS_DEBUG
属性可以用直接或通过 target_compile_definitions()
填充 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_policy()
或 cmake_minimum_required()
来设置。如果未设置,CMake 会发出警告并使用 OLD
行为。
注释
某个策略的 OLD
行为 默认弃用
,并且可能会在 CMake 的未来版本中移除。