Imported Upstream version 3.24.0
[platform/upstream/cmake.git] / Help / policy / CMP0097.rst
1 CMP0097
2 -------
3
4 .. versionadded:: 3.16
5
6 :command:`ExternalProject_Add` with ``GIT_SUBMODULES ""`` initializes no
7 submodules.  The policy also applies to :command:`FetchContent_Declare`,
8 which uses the same download and update features as
9 :command:`ExternalProject_Add`.
10
11 The commands provide a ``GIT_SUBMODULES`` option which controls what submodules
12 to initialize and update. Starting with CMake 3.16, explicitly setting
13 ``GIT_SUBMODULES`` to an empty string means no submodules will be initialized
14 or updated.
15
16 This policy provides compatibility for projects that have not been updated
17 to expect the new behavior.
18
19 The ``OLD`` behavior for this policy is for ``GIT_SUBMODULES`` when set to
20 an empty string to initialize and update all git submodules.
21 The ``NEW`` behavior for this policy is for ``GIT_SUBMODULES`` when set to
22 an empty string to initialize and update no git submodules.
23
24 This policy was introduced in CMake version 3.16.  Use the
25 :command:`cmake_policy` command to set it to ``OLD`` or ``NEW`` explicitly.
26 Unlike most policies, CMake version |release| does *not* warn
27 when this policy is not set and simply uses ``OLD`` behavior.