mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-09 15:20:56 -06:00
@@ -796,6 +796,8 @@ function(__FetchContent_directPopulate contentName)
|
||||
SUBBUILD_DIR
|
||||
SOURCE_DIR
|
||||
BINARY_DIR
|
||||
# We need special processing if DOWNLOAD_NO_EXTRACT is true
|
||||
DOWNLOAD_NO_EXTRACT
|
||||
# Prevent the following from being passed through
|
||||
CONFIGURE_COMMAND
|
||||
BUILD_COMMAND
|
||||
@@ -846,6 +848,26 @@ function(__FetchContent_directPopulate contentName)
|
||||
set(ARG_EXTRA "${ARG_EXTRA} \"${arg}\"")
|
||||
endforeach()
|
||||
|
||||
if(ARG_DOWNLOAD_NO_EXTRACT)
|
||||
set(ARG_EXTRA "${ARG_EXTRA} DOWNLOAD_NO_EXTRACT YES")
|
||||
set(__FETCHCONTENT_COPY_FILE
|
||||
"
|
||||
ExternalProject_Get_Property(${contentName}-populate DOWNLOADED_FILE)
|
||||
get_filename_component(dlFileName \"\${DOWNLOADED_FILE}\" NAME)
|
||||
|
||||
ExternalProject_Add_Step(${contentName}-populate copyfile
|
||||
COMMAND \"${CMAKE_COMMAND}\" -E copy_if_different
|
||||
\"<DOWNLOADED_FILE>\" \"${ARG_SOURCE_DIR}\"
|
||||
DEPENDEES patch
|
||||
DEPENDERS configure
|
||||
BYPRODUCTS \"${ARG_SOURCE_DIR}/\${dlFileName}\"
|
||||
COMMENT \"Copying file to SOURCE_DIR\"
|
||||
)
|
||||
")
|
||||
else()
|
||||
unset(__FETCHCONTENT_COPY_FILE)
|
||||
endif()
|
||||
|
||||
# Hide output if requested, but save it to a variable in case there's an
|
||||
# error so we can show the output upon failure. When not quiet, don't
|
||||
# capture the output to a variable because the user may want to see the
|
||||
|
||||
@@ -21,3 +21,5 @@ ExternalProject_Add(${contentName}-populate
|
||||
USES_TERMINAL_DOWNLOAD YES
|
||||
USES_TERMINAL_UPDATE YES
|
||||
)
|
||||
|
||||
@__FETCHCONTENT_COPY_FILE@
|
||||
|
||||
9
Tests/RunCMake/FetchContent/DownloadFile.cmake
Normal file
9
Tests/RunCMake/FetchContent/DownloadFile.cmake
Normal file
@@ -0,0 +1,9 @@
|
||||
include(FetchContent)
|
||||
|
||||
FetchContent_Declare(
|
||||
t1
|
||||
URL ${CMAKE_CURRENT_LIST_DIR}/dummyFile.txt
|
||||
DOWNLOAD_NO_EXTRACT YES
|
||||
)
|
||||
|
||||
FetchContent_Populate(t1)
|
||||
@@ -6,6 +6,7 @@ run_cmake(MissingDetails)
|
||||
run_cmake(DirectIgnoresDetails)
|
||||
run_cmake(FirstDetailsWin)
|
||||
run_cmake(DownloadTwice)
|
||||
run_cmake(DownloadFile)
|
||||
run_cmake(SameGenerator)
|
||||
run_cmake(VarDefinitions)
|
||||
run_cmake(GetProperties)
|
||||
|
||||
1
Tests/RunCMake/FetchContent/dummyFile.txt
Normal file
1
Tests/RunCMake/FetchContent/dummyFile.txt
Normal file
@@ -0,0 +1 @@
|
||||
# This file is used to verify fetching a single file directly
|
||||
Reference in New Issue
Block a user