ExternalProject: Avoid unnecessary git clones (#12564)
In the case of git, only track the repository in the repository info dependency tracking file. Not the tag. The download step should only re-run if the repository changes. The download step should NOT re-run if the tag changes. The update step is an 'always' re-running step, and so should already re-run, unless it's been eliminated by use of UPDATE_COMMAND ""
This commit is contained in:
parent
8bb46ee787
commit
987c017f6b
|
@ -1079,9 +1079,15 @@ function(_ep_add_download_command name)
|
||||||
set(git_tag "master")
|
set(git_tag "master")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# For the download step, and the git clone operation, only the repository
|
||||||
|
# should be recorded in a configured RepositoryInfo file. If the repo
|
||||||
|
# changes, the clone script should be run again. But if only the tag
|
||||||
|
# changes, avoid running the clone script again. Let the 'always' running
|
||||||
|
# update step checkout the new tag.
|
||||||
|
#
|
||||||
set(repository ${git_repository})
|
set(repository ${git_repository})
|
||||||
set(module)
|
set(module)
|
||||||
set(tag ${git_tag})
|
set(tag)
|
||||||
configure_file(
|
configure_file(
|
||||||
"${CMAKE_ROOT}/Modules/RepositoryInfo.txt.in"
|
"${CMAKE_ROOT}/Modules/RepositoryInfo.txt.in"
|
||||||
"${stamp_dir}/${name}-gitinfo.txt"
|
"${stamp_dir}/${name}-gitinfo.txt"
|
||||||
|
|
Loading…
Reference in New Issue