summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2016-05-19 14:41:24 (GMT)
committerCMake Topic Stage <kwrobot@kitware.com>2016-05-19 14:41:24 (GMT)
commit43a456e1351fc6c2aca088a55855b7f7c501c100 (patch)
tree69fb02e4605b19daaf2134d45df81f47ce897227
parent5a9efbfc4bb78a12677247a5ced53141a3c34ba4 (diff)
parentbdca68388bd57f8302d3c1d83d691034b7ffa70c (diff)
downloadCMake-43a456e1351fc6c2aca088a55855b7f7c501c100.zip
CMake-43a456e1351fc6c2aca088a55855b7f7c501c100.tar.gz
CMake-43a456e1351fc6c2aca088a55855b7f7c501c100.tar.bz2
Merge topic 'ExternalProject-UPDATE_COMMAND-always'
bdca6838 ExternalProject: Always run update step with non-empty UPDATE_COMMAND
-rw-r--r--Modules/ExternalProject.cmake3
-rw-r--r--Tests/ExternalProjectUpdate/CMakeLists.txt12
2 files changed, 15 insertions, 0 deletions
diff --git a/Modules/ExternalProject.cmake b/Modules/ExternalProject.cmake
index 7dad6e5..ec846b9 100644
--- a/Modules/ExternalProject.cmake
+++ b/Modules/ExternalProject.cmake
@@ -2030,6 +2030,9 @@ function(_ep_add_update_command name)
if(cmd_set)
set(work_dir ${source_dir})
+ if(NOT "x${cmd}" STREQUAL "x")
+ set(always 1)
+ endif()
elseif(cvs_repository)
if(NOT CVS_EXECUTABLE)
message(FATAL_ERROR "error: could not find cvs for update of ${name}")
diff --git a/Tests/ExternalProjectUpdate/CMakeLists.txt b/Tests/ExternalProjectUpdate/CMakeLists.txt
index fbb3388..dbf26c8 100644
--- a/Tests/ExternalProjectUpdate/CMakeLists.txt
+++ b/Tests/ExternalProjectUpdate/CMakeLists.txt
@@ -21,6 +21,18 @@ set_property(DIRECTORY PROPERTY EP_BASE ${base})
set_property(DIRECTORY PROPERTY EP_STEP_TARGETS configure build test)
set_property(DIRECTORY PROPERTY EP_INDEPENDENT_STEP_TARGETS update)
+ExternalProject_Add(TestUpdateCommand
+ SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}
+ UPDATE_COMMAND ${CMAKE_COMMAND} -E echo update
+ UPDATE_DISCONNECTED 1
+ CONFIGURE_COMMAND ""
+ BUILD_COMMAND ""
+ INSTALL_COMMAND ""
+ INDEPENDENT_STEP_TARGETS update
+ )
+add_custom_target(TestUpdateCommandDriver ALL)
+add_dependencies(TestUpdateCommandDriver TestUpdateCommand-update)
+
set(do_git_tests 0)
if(GIT_EXECUTABLE)