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 中可能會被移除。