From c0b7198ad9a4dea6473be0820ccbff27827e9f68 Mon Sep 17 00:00:00 2001 From: Craig Scott Date: Tue, 18 Aug 2020 23:01:09 +1000 Subject: ExternalProject: Stop patch target from always appearing out-of-date The skip-update target is always considered out-of-date. The change in 7249ba9677 (ExternalProject: Enforce that patch depends on update, 2020-04-03) made the patch target depend on skip-update, which in turn made it always out of date too. The patch command should only be re-run if the download needs to be performed again where updates are disconnected. Fixes: #21086 --- Modules/ExternalProject.cmake | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Modules/ExternalProject.cmake b/Modules/ExternalProject.cmake index aecc00b..85186ec 100644 --- a/Modules/ExternalProject.cmake +++ b/Modules/ExternalProject.cmake @@ -2801,9 +2801,9 @@ function(_ep_add_patch_command name) _ep_get_update_disconnected(update_disconnected ${name}) if(update_disconnected) - set(update_dep skip-update) + set(patch_dep download) else() - set(update_dep update) + set(patch_dep update) endif() set(__cmdQuoted) @@ -2814,7 +2814,7 @@ function(_ep_add_patch_command name) ExternalProject_Add_Step(${name} patch COMMAND ${__cmdQuoted} WORKING_DIRECTORY \${work_dir} - DEPENDEES download \${update_dep} + DEPENDEES \${patch_dep} ${log} )" ) -- cgit v0.12 From 715324742f2634cd883e2551312fe15b86a21f52 Mon Sep 17 00:00:00 2001 From: Craig Scott Date: Tue, 18 Aug 2020 23:24:17 +1000 Subject: ExternalProject: Stop configure target from always appearing out-of-date When updates are disconnected, don't depend on skip-update because that target is always considered out of date. Depend directly on the patch target instead because it already depends on the appropriate target regardless of whether updates are disconnected or not. This in turn means nothing depends on the skip-update target, so it has also been removed. Relates: #21086 --- Modules/ExternalProject.cmake | 26 ++------------------------ 1 file changed, 2 insertions(+), 24 deletions(-) diff --git a/Modules/ExternalProject.cmake b/Modules/ExternalProject.cmake index 85186ec..fcff5dd 100644 --- a/Modules/ExternalProject.cmake +++ b/Modules/ExternalProject.cmake @@ -747,7 +747,7 @@ control needed to implement such step-level capabilities. ```` is the same as the name passed to the original call to :command:`ExternalProject_Add`. The specified ```` must not be one of - the pre-defined steps (``mkdir``, ``download``, ``update``, ``skip-update``, + the pre-defined steps (``mkdir``, ``download``, ``update``, ``patch``, ``configure``, ``build``, ``install`` or ``test``). The supported options are: @@ -2762,21 +2762,6 @@ Update to Mercurial >= 2.1.1. )" ) - if(update_disconnected) - _ep_get_step_stampfile(${name} skip-update skip-update_stamp_file) - string(REPLACE "Performing" "Skipping" comment "${comment}") - ExternalProject_Add_Step(${name} skip-update - COMMENT ${comment} - ALWAYS ${always} - EXCLUDE_FROM_MAIN 1 - WORKING_DIRECTORY ${work_dir} - DEPENDEES download - ${log} - ${uses_terminal} - ) - set_property(SOURCE ${skip-update_stamp_file} PROPERTY SYMBOLIC 1) - endif() - endfunction() @@ -2970,13 +2955,6 @@ function(_ep_add_configure_command name) set(uses_terminal "") endif() - _ep_get_update_disconnected(update_disconnected ${name}) - if(update_disconnected) - set(update_dep skip-update) - else() - set(update_dep update) - endif() - set(__cmdQuoted) foreach(__item IN LISTS cmd) string(APPEND __cmdQuoted " [==[${__item}]==]") @@ -2985,7 +2963,7 @@ function(_ep_add_configure_command name) ExternalProject_Add_Step(${name} configure COMMAND ${__cmdQuoted} WORKING_DIRECTORY \${binary_dir} - DEPENDEES \${update_dep} patch + DEPENDEES patch DEPENDS \${file_deps} ${log} ${uses_terminal} -- cgit v0.12