CMP0097ΒΆ

New in version 3.16.

ExternalProject_Add() with GIT_SUBMODULES "" initializes no submodules.

The commands provide a GIT_SUBMODULES option which controls what submodules to initialize and update. Starting with CMake 3.16, explicitly setting GIT_SUBMODULES to an empty string means no submodules will be initialized or updated.

This policy provides compatibility for projects that have not been updated to expect the new behavior.

The OLD behavior for this policy is for GIT_SUBMODULES when set to an empty string to initialize and update all git submodules. The NEW behavior for this policy is for GIT_SUBMODULES when set to an empty string to initialize and update no git submodules.

This policy was introduced in CMake version 3.16. It may be set by cmake_policy() or cmake_minimum_required(). If it is not set, CMake does not warn, and uses OLD behavior.

Note

This policy also applies to FetchContent_Declare(), which uses the same download and update features as ExternalProject_Add(). However, due to an implementation deficiency present since the policy was first introduced, CMake 3.16 and later always uses the NEW behavior for FetchContent_Declare(), regardless of the policy setting. Formally, this forcing of NEW behavior for FetchContent_Declare() will continue to apply in future CMake releases.

Note

The OLD behavior of a policy is deprecated by definition and may be removed in a future version of CMake.