CMP0169¶
在版本 3.30 中新增。
呼叫帶有單一參數(宣告的依賴項名稱)的 FetchContent_Populate()
已棄用。
在引入 FetchContent_MakeAvailable()
之前,專案使用以下模式填充先前宣告的內容(使用 FetchContent_Declare()
):
FetchContent_GetProperties(depname)
if(NOT depname_POPULATED)
FetchContent_Populate(depname)
add_subdirectory(${depname_SOURCE_DIR} ${depname_BINARY_DIR})
endif()
上述模式不支援隨時間推移添加到 FetchContent
的許多功能。它忽略了諸如 SYSTEM
和 EXCLUDE_FROM_ALL
之類的選項,這些選項可以提供給 FetchContent_Declare()
,但無法告知上述專案程式碼。它也不支援依賴提供者。專案應呼叫 FetchContent_MakeAvailable()
而不是使用上述模式。
CMake 3.30 及更高版本傾向於拒絕使用宣告的依賴項名稱呼叫 FetchContent_Populate()
。此策略為尚未更新為呼叫 FetchContent_MakeAvailable()
的專案提供相容性。
此策略的 OLD
行為允許使用宣告的依賴項名稱呼叫 FetchContent_Populate()
。NEW
行為在這種情況下會因嚴重錯誤而停止。
注意
使用完整填充詳細資訊作為命令參數而不是僅僅依賴項名稱來呼叫 FetchContent_Populate()
仍然完全受支援。只有使用單一參數(先前宣告的依賴項名稱)呼叫 FetchContent_Populate()
的形式在此策略中已棄用。
此策略在 CMake 版本 3.30 中引入。它可以由 cmake_policy()
或 cmake_minimum_required()
設定。如果未設定,CMake 會發出警告,並使用 OLD
行為。
注意
策略的 OLD
行為根據定義已棄用
,並可能在未來的 CMake 版本中移除。