Browse Source

ExternalProject: Fix UPDATE_DISCONNECTED with empty update steps

When `UPDATE_DISCONNECTED` is enabled the post-update steps
unconditionally depend on a `skip-update` step instead of `update`.
Make `skip-update` available whenever `UPDATE_DISCONNECTED` is enabled,
whether there is a real update step or not.

Closes: #16428
Brad King 9 years ago
parent
commit
4deaa25f46
2 changed files with 3 additions and 2 deletions
  1. 2 2
      Modules/ExternalProject.cmake
  2. 1 0
      Tests/ExternalProjectLocal/CMakeLists.txt

+ 2 - 2
Modules/ExternalProject.cmake

@@ -2165,12 +2165,12 @@ Update to Mercurial >= 2.1.1.
     ${uses_terminal}
     )
 
-  if(always AND update_disconnected)
+  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 1
+      ALWAYS ${always}
       EXCLUDE_FROM_MAIN 1
       WORKING_DIRECTORY ${work_dir}
       DEPENDEES download

+ 1 - 0
Tests/ExternalProjectLocal/CMakeLists.txt

@@ -131,6 +131,7 @@ ExternalProject_Add(${proj}
   CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -G ${CMAKE_GENERATOR} <SOURCE_DIR>
   INSTALL_COMMAND ""
   LOG_BUILD 1
+  UPDATE_DISCONNECTED 1
 )
 set_property(TARGET ${proj} PROPERTY FOLDER "Local/TGZ")