CMake: Don't use existing third-party sources by default.

Introduce ALLOW_EXISTING_SRC_DIR option, turned off by default.

The Homebrew formula, which downloads and extracts the third-party
dependency sources before starting the build, would turn this option
ON.
This commit is contained in:
Florian Walch
2015-09-08 12:09:44 +02:00
parent 41446715b4
commit b480eb069b
10 changed files with 18 additions and 5 deletions

View File

@@ -22,12 +22,15 @@ 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()
if(USE_EXISTING_SRC_DIR)
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()
message(FATAL_ERROR "USE_EXISTING_SRC_DIR set to ON, but '${SRC_DIR}' does not exist or is empty.")
endif()
# Taken from ExternalProject_Add. Let's hope we can drop this one day when