mirror of
https://github.com/neovim/neovim.git
synced 2025-12-05 22:22:44 +00:00
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:
2
third-party/CMakeLists.txt
vendored
2
third-party/CMakeLists.txt
vendored
@@ -22,6 +22,8 @@ option(USE_BUNDLED_MSGPACK "Use the bundled msgpack." ${USE_BUNDLED})
|
||||
option(USE_BUNDLED_LUAJIT "Use the bundled version of luajit." ${USE_BUNDLED})
|
||||
option(USE_BUNDLED_LUAROCKS "Use the bundled version of luarocks." ${USE_BUNDLED})
|
||||
|
||||
option(USE_EXISTING_SRC_DIR "Skip download of deps sources in case of existing source directory." OFF)
|
||||
|
||||
if(UNIX)
|
||||
find_program(MAKE_PRG NAMES gmake make)
|
||||
if(MAKE_PRG)
|
||||
|
||||
1
third-party/cmake/BuildJeMalloc.cmake
vendored
1
third-party/cmake/BuildJeMalloc.cmake
vendored
@@ -13,6 +13,7 @@ ExternalProject_Add(jemalloc
|
||||
-DURL=${JEMALLOC_URL}
|
||||
-DEXPECTED_SHA256=${JEMALLOC_SHA256}
|
||||
-DTARGET=jemalloc
|
||||
-DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR}
|
||||
-P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake
|
||||
BUILD_IN_SOURCE 1
|
||||
CONFIGURE_COMMAND ${DEPS_BUILD_DIR}/src/jemalloc/configure --enable-cc-silence
|
||||
|
||||
1
third-party/cmake/BuildLibtermkey.cmake
vendored
1
third-party/cmake/BuildLibtermkey.cmake
vendored
@@ -14,6 +14,7 @@ ExternalProject_Add(libtermkey
|
||||
-DURL=${LIBTERMKEY_URL}
|
||||
-DEXPECTED_SHA256=${LIBTERMKEY_SHA256}
|
||||
-DTARGET=libtermkey
|
||||
-DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR}
|
||||
-P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake
|
||||
CONFIGURE_COMMAND ""
|
||||
BUILD_IN_SOURCE 1
|
||||
|
||||
1
third-party/cmake/BuildLibuv.cmake
vendored
1
third-party/cmake/BuildLibuv.cmake
vendored
@@ -28,6 +28,7 @@ function(BuildLibuv)
|
||||
-DURL=${LIBUV_URL}
|
||||
-DEXPECTED_SHA256=${LIBUV_SHA256}
|
||||
-DTARGET=${_libuv_TARGET}
|
||||
-DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR}
|
||||
-P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake
|
||||
CONFIGURE_COMMAND "${_libuv_CONFIGURE_COMMAND}"
|
||||
BUILD_COMMAND "${_libuv_BUILD_COMMAND}"
|
||||
|
||||
1
third-party/cmake/BuildLibvterm.cmake
vendored
1
third-party/cmake/BuildLibvterm.cmake
vendored
@@ -13,6 +13,7 @@ ExternalProject_Add(libvterm
|
||||
-DURL=${LIBVTERM_URL}
|
||||
-DEXPECTED_SHA256=${LIBVTERM_SHA256}
|
||||
-DTARGET=libvterm
|
||||
-DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR}
|
||||
-P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake
|
||||
CONFIGURE_COMMAND ""
|
||||
BUILD_IN_SOURCE 1
|
||||
|
||||
1
third-party/cmake/BuildLuajit.cmake
vendored
1
third-party/cmake/BuildLuajit.cmake
vendored
@@ -27,6 +27,7 @@ function(BuildLuajit)
|
||||
-DURL=${LUAJIT_URL}
|
||||
-DEXPECTED_SHA256=${LUAJIT_SHA256}
|
||||
-DTARGET=${_luajit_TARGET}
|
||||
-DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR}
|
||||
-P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake
|
||||
CONFIGURE_COMMAND "${_luajit_CONFIGURE_COMMAND}"
|
||||
BUILD_IN_SOURCE 1
|
||||
|
||||
1
third-party/cmake/BuildLuarocks.cmake
vendored
1
third-party/cmake/BuildLuarocks.cmake
vendored
@@ -34,6 +34,7 @@ function(BuildLuarocks)
|
||||
-DURL=${LUAROCKS_URL}
|
||||
-DEXPECTED_SHA256=${LUAROCKS_SHA256}
|
||||
-DTARGET=luarocks
|
||||
-DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR}
|
||||
-P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake
|
||||
BUILD_IN_SOURCE 1
|
||||
CONFIGURE_COMMAND "${_luarocks_CONFIGURE_COMMAND}"
|
||||
|
||||
1
third-party/cmake/BuildMsgpack.cmake
vendored
1
third-party/cmake/BuildMsgpack.cmake
vendored
@@ -25,6 +25,7 @@ function(BuildMsgpack)
|
||||
-DURL=${MSGPACK_URL}
|
||||
-DEXPECTED_SHA256=${MSGPACK_SHA256}
|
||||
-DTARGET=msgpack
|
||||
-DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR}
|
||||
-P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake
|
||||
CONFIGURE_COMMAND "${_msgpack_CONFIGURE_COMMAND}"
|
||||
BUILD_COMMAND "${_msgpack_BUILD_COMMAND}"
|
||||
|
||||
1
third-party/cmake/BuildUnibilium.cmake
vendored
1
third-party/cmake/BuildUnibilium.cmake
vendored
@@ -13,6 +13,7 @@ ExternalProject_Add(unibilium
|
||||
-DURL=${UNIBILIUM_URL}
|
||||
-DEXPECTED_SHA256=${UNIBILIUM_SHA256}
|
||||
-DTARGET=unibilium
|
||||
-DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR}
|
||||
-P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake
|
||||
CONFIGURE_COMMAND ""
|
||||
BUILD_IN_SOURCE 1
|
||||
|
||||
13
third-party/cmake/DownloadAndExtractFile.cmake
vendored
13
third-party/cmake/DownloadAndExtractFile.cmake
vendored
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user