summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Boeckel <ben.boeckel@kitware.com>2020-04-02 08:49:21 -0400
committerBen Boeckel <ben.boeckel@kitware.com>2020-04-02 08:55:04 -0400
commit2c4bb705e842db66904df5014a5755b57ac51b72 (patch)
treef606947f094133441991f75950331bcc3782c978
parente3185e3d1b92a95c18f22f70b3cef6944dd019eb (diff)
downloadcmake-2c4bb705e842db66904df5014a5755b57ac51b72.tar.gz
ExternalProject: allow `DOWNLOAD_NO_EXTRACT OFF`
Fixes: #20531
-rw-r--r--Modules/ExternalProject.cmake2
-rw-r--r--Tests/ExternalProject/CMakeLists.txt9
2 files changed, 10 insertions, 1 deletions
diff --git a/Modules/ExternalProject.cmake b/Modules/ExternalProject.cmake
index 5bac0d8419..a9448e5e08 100644
--- a/Modules/ExternalProject.cmake
+++ b/Modules/ExternalProject.cmake
@@ -2595,7 +2595,7 @@ function(_ep_add_download_command name)
set(cmd ${CMAKE_COMMAND} -E rm -rf ${source_dir}
COMMAND ${CMAKE_COMMAND} -E copy_directory ${abs_dir} ${source_dir})
else()
- get_property(no_extract TARGET "${name}" PROPERTY _EP_DOWNLOAD_NO_EXTRACT SET)
+ get_property(no_extract TARGET "${name}" PROPERTY _EP_DOWNLOAD_NO_EXTRACT)
if("${url}" MATCHES "^[a-z]+://")
# TODO: Should download and extraction be different steps?
if("x${fname}" STREQUAL "x")
diff --git a/Tests/ExternalProject/CMakeLists.txt b/Tests/ExternalProject/CMakeLists.txt
index 450e7e5e0b..c8850eaf2d 100644
--- a/Tests/ExternalProject/CMakeLists.txt
+++ b/Tests/ExternalProject/CMakeLists.txt
@@ -100,6 +100,15 @@ ExternalProject_Add(${proj}
INSTALL_COMMAND ""
)
+set(proj NoExtractBool)
+ExternalProject_Add(${proj}
+ URL ${CMAKE_CURRENT_SOURCE_DIR}/gitrepo.tgz
+ DOWNLOAD_NO_EXTRACT 0
+ LOG_DOWNLOAD 1
+ BUILD_COMMAND ""
+ CONFIGURE_COMMAND ""
+ INSTALL_COMMAND ""
+)
# CVS-based tests:
#