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
行为 按 定义 已弃用
,将来版本中可能会删除它。