diff options
-rw-r--r-- | third-party/cmake/DownloadAndExtractFile.cmake | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/third-party/cmake/DownloadAndExtractFile.cmake b/third-party/cmake/DownloadAndExtractFile.cmake index e7a01b8a87..ec9c6db3b4 100644 --- a/third-party/cmake/DownloadAndExtractFile.cmake +++ b/third-party/cmake/DownloadAndExtractFile.cmake @@ -18,6 +18,15 @@ if(NOT DEFINED TARGET) message(FATAL_ERROR "TARGET must be defined.") endif() +set(SRC_DIR ${PREFIX}/src/${TARGET}) + +# Check whether the source has been downloaded. If true, skip it. +# Useful for external downloads like homebrew. +if(EXISTS "${SRC_DIR}" AND IS_DIRECTORY "${SRC_DIR}") + message(STATUS "${SRC_DIR} is found, skipping download and extraction. ") + return() +endif() + # Taken from ExternalProject_Add. Let's hope we can drop this one day when # ExternalProject_Add allows you to disable SHOW_PROGRESS on the file download. if(TIMEOUT) @@ -65,8 +74,6 @@ endif() message(STATUS "downloading... done") -set(SRC_DIR ${PREFIX}/src/${TARGET}) - # Slurped from a generated extract-TARGET.cmake file. message(STATUS "extracting... src='${file}' |