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 版本中移除。