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. See PR #1411.

Also make sure to skip only if directory is not empty. Fix #1433.
This commit is contained in:
Xu Cheng 2014-11-08 19:11:13 +08:00
parent 5d0f8b63e3
commit cca2c089cf

View File

@ -18,6 +18,18 @@ 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}")
file(GLOB EXISTED_FILES "${SRC_DIR}/*")
if(EXISTED_FILES)
message(STATUS "${SRC_DIR} is found and not empty, skipping download and extraction. ")
return()
endif()
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)
@ -71,8 +83,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}'