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 行為是依定義已棄用,並可能在未來版本的 CMake 中移除。