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
行為。