summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Help/release/dev/ExternalProject-git-recursive-init.rst7
-rw-r--r--Modules/ExternalProject.cmake4
2 files changed, 9 insertions, 2 deletions
diff --git a/Help/release/dev/ExternalProject-git-recursive-init.rst b/Help/release/dev/ExternalProject-git-recursive-init.rst
new file mode 100644
index 0000000..1ebcced
--- /dev/null
+++ b/Help/release/dev/ExternalProject-git-recursive-init.rst
@@ -0,0 +1,7 @@
+ExternalProject-git-recursive-init
+----------------------------------
+
+* The :module:`ExternalProject` module learned to initialize Git submodules
+ recursively and also to initialize new submodules on updates. Use the
+ ``GIT_SUBMODULES`` option to restrict which submodules are initalized and
+ updated.
diff --git a/Modules/ExternalProject.cmake b/Modules/ExternalProject.cmake
index 9cc8a20..7dad6e5 100644
--- a/Modules/ExternalProject.cmake
+++ b/Modules/ExternalProject.cmake
@@ -587,7 +587,7 @@ if(error_code)
endif()
execute_process(
- COMMAND \"${git_EXECUTABLE}\" \${git_options} submodule update --recursive ${git_submodules}
+ COMMAND \"${git_EXECUTABLE}\" \${git_options} submodule update --recursive --init ${git_submodules}
WORKING_DIRECTORY \"${work_dir}/${src_name}\"
RESULT_VARIABLE error_code
)
@@ -833,7 +833,7 @@ if(error_code OR is_remote_ref OR NOT (\"\${tag_sha}\" STREQUAL \"\${head_sha}\"
endif()
execute_process(
- COMMAND \"${git_EXECUTABLE}\" submodule update --recursive ${git_submodules}
+ COMMAND \"${git_EXECUTABLE}\" submodule update --recursive --init ${git_submodules}
WORKING_DIRECTORY \"${work_dir}/${src_name}\"
RESULT_VARIABLE error_code
)