CMP0097

新增於 3.16 版本。

ExternalProject_Add() 搭配 GIT_SUBMODULES "" 不會初始化任何子模組。

這些命令提供一個 GIT_SUBMODULES 選項,控制要初始化和更新哪些子模組。從 CMake 3.16 開始,明確地將 GIT_SUBMODULES 設定為空字串表示不會初始化或更新任何子模組。

此策略為尚未更新以預期新行為的專案提供相容性。

此策略的 OLD 行為是指當 GIT_SUBMODULES 設定為空字串時,會初始化並更新所有 Git 子模組。此策略的 NEW 行為是指當 GIT_SUBMODULES 設定為空字串時,不會初始化或更新任何 Git 子模組。

此策略在 CMake 3.16 版本中引入。它可以使用 cmake_policy()cmake_minimum_required() 設定。如果未設定,CMake 則*不會*發出警告,並使用 OLD 行為。

注意

此策略也適用於 FetchContent_Declare(),它使用與 ExternalProject_Add() 相同的下載和更新功能。然而,由於自首次引入策略以來就存在實作上的缺陷,無論策略設定如何,CMake 3.16 及更高版本始終對 FetchContent_Declare() 使用 NEW 行為。正式而言,這種強制對 FetchContent_Declare() 使用 NEW 行為,將在未來的 CMake 版本中繼續適用。

注意

策略的 OLD 行為是 根據定義已棄用,並可能在未來版本的 CMake 中移除。