aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXu Cheng <xucheng@me.com>2014-11-06 17:56:52 +0800
committerXu Cheng <xucheng@me.com>2014-11-07 20:19:00 +0800
commit90658982644b76a9e8e4abfbcd16450df26b0a32 (patch)
tree5f4672451a882b41d5bc834eeb8947406a3f6500
parent871e353fa851ef58e0918d93929b2ec7c9607470 (diff)
downloadrneovim-90658982644b76a9e8e4abfbcd16450df26b0a32.tar.gz
rneovim-90658982644b76a9e8e4abfbcd16450df26b0a32.tar.bz2
rneovim-90658982644b76a9e8e4abfbcd16450df26b0a32.zip
build: don't download and extract tarball if source is already present
When building under Homebrew, we want to let Homebrew manage downloading and extracting the tarballs.
-rw-r--r--third-party/cmake/DownloadAndExtractFile.cmake11
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}'