diff --git a/Modules/ExternalProject.cmake b/Modules/ExternalProject.cmake index 3752cebad79f853b9cb7499867856453da7c5cef..ea94f0390294cc91fd7675b8cb19007ea6f83d43 100644 --- a/Modules/ExternalProject.cmake +++ b/Modules/ExternalProject.cmake @@ -342,6 +342,12 @@ External Project Definition the appearance of the build having stalled, it may also make the build overly noisy if lots of external projects are used. + ``GIT_QUIET`` + .. versionadded:: 0.0 + + When enabled, this option passes the ``--quiet`` option to all git + commands which support it. + ``GIT_CONFIG [...]`` .. versionadded:: 3.8 @@ -1288,6 +1294,7 @@ function(_ep_write_gitclone_script git_submodules git_shallow git_progress + git_quiet git_config src_name work_dir @@ -1322,6 +1329,12 @@ function(_ep_write_gitclone_script list(APPEND git_clone_options "--depth 1") endif() endif() + if(git_quiet) + list(APPEND git_clone_options --quiet) + set(git_quiet_option "--quiet") + else() + set(git_quiet_option) + endif() if(git_progress) list(APPEND git_clone_options --progress) endif() @@ -1383,6 +1396,7 @@ function(_ep_write_gitupdate_script git_submodules_recurse git_submodules git_repository + git_quiet work_dir git_update_strategy ) @@ -2815,6 +2829,11 @@ function(_ep_add_download_command name) set(git_tag "master") endif() + get_property(git_quiet TARGET ${name} PROPERTY _EP_GIT_QUIET) + if(NOT git_quiet) + set(git_quiet) + endif() + set(git_init_submodules TRUE) get_property(git_submodules_set TARGET ${name} @@ -2880,6 +2899,7 @@ CMP0097=${_EP_CMP0097} "${git_submodules}" "${git_shallow}" "${git_progress}" + "${git_quiet}" "${git_config}" ${src_name} ${work_dir} @@ -3351,6 +3371,7 @@ function(_ep_add_update_command name) "${git_submodules_recurse}" "${git_submodules}" "${git_repository}" + "${git_quiet}" "${work_dir}" "${git_update_strategy}" ) diff --git a/Modules/ExternalProject/gitclone.cmake.in b/Modules/ExternalProject/gitclone.cmake.in index 3312171e0b59fbe8946c93393acdbe694d3a0c1d..f58fc1a8737dad7fe8510f9f2ca0ab2d91d8f5ca 100644 --- a/Modules/ExternalProject/gitclone.cmake.in +++ b/Modules/ExternalProject/gitclone.cmake.in @@ -5,10 +5,11 @@ cmake_minimum_required(VERSION 3.5) if(EXISTS "@gitclone_stampfile@" AND EXISTS "@gitclone_infofile@" AND "@gitclone_stampfile@" IS_NEWER_THAN "@gitclone_infofile@") - message(STATUS - "Avoiding repeated git clone, stamp file is up to date: " - "'@gitclone_stampfile@'" - ) + if(NOT @git_quiet@) + message(STATUS + "Avoiding repeated git clone, stamp file is up to date: " + "'@gitclone_stampfile@'") + endif() return() endif() @@ -41,7 +42,7 @@ endif() execute_process( COMMAND "@git_EXECUTABLE@" @git_options@ - checkout "@git_tag@" @git_checkout_explicit--@ + checkout @git_quiet_option@ "@git_tag@" @git_checkout_explicit--@ WORKING_DIRECTORY "@work_dir@/@src_name@" RESULT_VARIABLE error_code ) @@ -53,7 +54,7 @@ set(init_submodules @init_submodules@) if(init_submodules) execute_process( COMMAND "@git_EXECUTABLE@" @git_options@ - submodule update @git_submodules_recurse@ --init @git_submodules@ + submodule update @git_quiet_option@ @git_submodules_recurse@ --init @git_submodules@ WORKING_DIRECTORY "@work_dir@/@src_name@" RESULT_VARIABLE error_code ) diff --git a/Modules/ExternalProject/gitupdate.cmake.in b/Modules/ExternalProject/gitupdate.cmake.in index 50f016706a8bcbdfd0a22922c2ed489cef2993e3..28ad4e5724c30ed179da597dc5005092c098f280 100644 --- a/Modules/ExternalProject/gitupdate.cmake.in +++ b/Modules/ExternalProject/gitupdate.cmake.in @@ -173,13 +173,13 @@ endif() if(git_update_strategy STREQUAL "CHECKOUT") execute_process( - COMMAND "@git_EXECUTABLE@" --git-dir=.git checkout "${checkout_name}" + COMMAND "@git_EXECUTABLE@" --git-dir=.git checkout @git_quiet_option@ "${checkout_name}" WORKING_DIRECTORY "@work_dir@" COMMAND_ERROR_IS_FATAL ANY ) else() execute_process( - COMMAND "@git_EXECUTABLE@" --git-dir=.git rebase "${checkout_name}" + COMMAND "@git_EXECUTABLE@" --git-dir=.git rebase @git_quiet_option@ "${checkout_name}" WORKING_DIRECTORY "@work_dir@" RESULT_VARIABLE error_code OUTPUT_VARIABLE rebase_output @@ -188,7 +188,7 @@ else() if(error_code) # Rebase failed, undo the rebase attempt before continuing execute_process( - COMMAND "@git_EXECUTABLE@" --git-dir=.git rebase --abort + COMMAND "@git_EXECUTABLE@" --git-dir=.git rebase --abort @git_quiet_option@ WORKING_DIRECTORY "@work_dir@" ) @@ -226,7 +226,7 @@ else() ) execute_process( - COMMAND "@git_EXECUTABLE@" --git-dir=.git checkout "${checkout_name}" + COMMAND "@git_EXECUTABLE@" --git-dir=.git checkout @git_quiet_option@ "${checkout_name}" WORKING_DIRECTORY "@work_dir@" COMMAND_ERROR_IS_FATAL ANY )