CMP0043¶
忽略 COMPILE_DEFINITIONS_<Config> 屬性
CMake 2.8.12 及更早版本允許設定 COMPILE_DEFINITIONS_<CONFIG>
目標屬性和 COMPILE_DEFINITIONS_<CONFIG>
目錄屬性,以套用特定組態的編譯定義。
自 CMake 2.8.10 起,COMPILE_DEFINITIONS
屬性已支援 產生器 表達式
,用於設定與組態相關的內容。帶後綴的變數持續存在是多餘的,並且會造成維護負擔。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_policy()
或 cmake_minimum_required()
設定。如果未設定,CMake 會發出警告,並使用 OLD
行為。
注意
政策的 OLD
行為依定義 已棄用
,並可能在 CMake 的未來版本中移除。