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