summaryrefslogtreecommitdiffstats
path: root/Modules/ExternalData.cmake
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2022-11-17 18:49:25 (GMT)
committerBrad King <brad.king@kitware.com>2022-11-17 20:05:07 (GMT)
commitd34986036fdc0dfa85a2d85a4fe5bce0368b1187 (patch)
tree21a8dc38d22ae89a1fc93459f924116b6f1b6ce5 /Modules/ExternalData.cmake
parentefa9eec0402adacc7ac8b0dc17660a8bd968b06a (diff)
downloadCMake-d34986036fdc0dfa85a2d85a4fe5bce0368b1187.zip
CMake-d34986036fdc0dfa85a2d85a4fe5bce0368b1187.tar.gz
CMake-d34986036fdc0dfa85a2d85a4fe5bce0368b1187.tar.bz2
ExternalData: Improve robustness on Windows to copy a data object to a file
When an external data object was recently created on disk, perhaps fetched by the current process or another process, it may be inaccessible on Windows for a short time. Tell our `file(COPY_FILE)` call to retry a few times to copy the object to the final file path. Hopefully this will resolve our long-standing spurious failures of the `Module.ExternalData` test on Windows.
Diffstat (limited to 'Modules/ExternalData.cmake')
-rw-r--r--Modules/ExternalData.cmake2
1 files changed, 1 insertions, 1 deletions
diff --git a/Modules/ExternalData.cmake b/Modules/ExternalData.cmake
index 189374b..6826c7b 100644
--- a/Modules/ExternalData.cmake
+++ b/Modules/ExternalData.cmake
@@ -945,7 +945,7 @@ function(_ExternalData_link_or_copy src dst)
file(CREATE_LINK "${tgt}" "${tmp}" RESULT result COPY_ON_ERROR SYMBOLIC)
else()
# Create a copy.
- file(COPY_FILE "${src}" "${tmp}" RESULT result)
+ file(COPY_FILE "${src}" "${tmp}" RESULT result INPUT_MAY_BE_RECENT)
endif()
if(result)
file(REMOVE "${tmp}")