CMP0112¶
在版本 3.19 中新增。
目標檔案組件產生器表達式不再加入目標依賴項。
以下基於目標的產生器表達式,用於查詢目錄或檔案名稱組件,不再加入對評估目標的依賴項。
TARGET_FILE_NAME
TARGET_FILE_DIR
TARGET_LINKER_FILE_BASE_NAME
TARGET_LINKER_FILE_NAME
TARGET_LINKER_FILE_DIR
TARGET_SONAME_FILE_NAME
TARGET_SONAME_FILE_DIR
TARGET_PDB_FILE_NAME
TARGET_PDB_FILE_DIR
TARGET_BUNDLE_DIR
TARGET_BUNDLE_DIR_NAME
TARGET_BUNDLE_CONTENT_DIR
在 CMake 3.18 及更低版本中,上述產生器表達式的評估目標的依賴項總是會被加入。CMake 3.19 及更高版本傾向於不加入此依賴項。此策略為尚未更新以預期新行為的專案提供相容性。策略設定會在每個目標建立時記錄,並決定引用該目標的產生器表達式是否暗示對它的依賴性。
此策略的 OLD
行為是為上述產生器表達式的評估目標加入依賴項。此策略的 NEW
行為是不為上述產生器表達式的評估目標加入依賴項。
此策略在 CMake 版本 3.19 中引入。它可以通過 cmake_policy()
或 cmake_minimum_required()
設置。如果未設置,CMake 預設情況下 *不* 發出警告,並使用 OLD
行為。
請參閱 CMAKE_POLICY_WARNING_CMP0112
變數的文件,以控制警告。
注意
策略的 OLD
行為依 definition
判定為 deprecated
,並且在未來版本的 CMake 中可能會被移除。