neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

commit 61da959bb401b83454be0748b7a8b482f1be76e5
parent 25dea99ce54de6a8c4369e28e0db82e1af669f24
Author: James McCoy <jamessan@jamessan.com>
Date:   Thu,  6 Oct 2022 09:14:38 -0400

build(deps): restore support for USE_EXISTING_SRC_DIR (#20491)

59d5f692f removed cmake.deps/cmake/DownloadAndExtractFile.cmake and
support for USE_EXISTING_SRC_DIR.  The Ubuntu nightly PPA still relies
on USE_EXISTING_SRC_DIR functionality since it can't access the network
during the build.

Supplying an empty value for ExternalProject_Add()'s URL value appears
to provide the needed mechanism to avoid re-downloading when the sources
are already present.  This is undocumented behavior, though, so it may
break in the future.

Now, if USE_EXISTING_SRC_DIR is set, the ExternalProject's URL variable
is unset, preventing the download and erroring out if the source doesn't
actually exist.
Diffstat:
Mcmake.deps/CMakeLists.txt | 2++
Mcmake.deps/cmake/BuildGettext.cmake | 3+++
Mcmake.deps/cmake/BuildLibiconv.cmake | 3+++
Mcmake.deps/cmake/BuildLibtermkey.cmake | 3+++
Mcmake.deps/cmake/BuildLibuv.cmake | 3+++
Mcmake.deps/cmake/BuildLibvterm.cmake | 3+++
Mcmake.deps/cmake/BuildLua.cmake | 3+++
Mcmake.deps/cmake/BuildLuajit.cmake | 3+++
Mcmake.deps/cmake/BuildLuarocks.cmake | 3+++
Mcmake.deps/cmake/BuildLuv.cmake | 6++++++
Mcmake.deps/cmake/BuildMsgpack.cmake | 3+++
Mcmake.deps/cmake/BuildTreesitter.cmake | 3+++
Mcmake.deps/cmake/BuildTreesitterParsers.cmake | 3+++
Mcmake.deps/cmake/BuildUnibilium.cmake | 3+++
Mcmake.deps/cmake/GetBinaryDeps.cmake | 3+++
15 files changed, 47 insertions(+), 0 deletions(-)

diff --git a/cmake.deps/CMakeLists.txt b/cmake.deps/CMakeLists.txt @@ -66,6 +66,8 @@ else() option(USE_BUNDLED_LIBICONV "Use the bundled version of libiconv." OFF) endif() +option(USE_EXISTING_SRC_DIR "Skip download of deps sources in case of existing source directory." OFF) + find_package(Git) if(NOT Git_FOUND) message(FATAL_ERROR "Git is required to apply patches.") diff --git a/cmake.deps/cmake/BuildGettext.cmake b/cmake.deps/cmake/BuildGettext.cmake @@ -1,4 +1,7 @@ if(MSVC) + if(USE_EXISTING_SRC_DIR) + unset(GETTEXT_URL) + endif() ExternalProject_Add(gettext URL ${GETTEXT_URL} URL_HASH SHA256=${GETTEXT_SHA256} diff --git a/cmake.deps/cmake/BuildLibiconv.cmake b/cmake.deps/cmake/BuildLibiconv.cmake @@ -1,4 +1,7 @@ if(MSVC) + if(USE_EXISTING_SRC_DIR) + unset(LIBICONV_URL) + endif() ExternalProject_Add(libiconv URL ${LIBICONV_URL} URL_HASH SHA256=${LIBICONV_SHA256} diff --git a/cmake.deps/cmake/BuildLibtermkey.cmake b/cmake.deps/cmake/BuildLibtermkey.cmake @@ -22,6 +22,9 @@ else() CFLAGS=-fPIC LDFLAGS+=-static ${DEFAULT_MAKE_CFLAGS} install) endif() +if(USE_EXISTING_SRC_DIR) + unset(LIBTERMKEY_URL) +endif() ExternalProject_Add(libtermkey URL ${LIBTERMKEY_URL} URL_HASH SHA256=${LIBTERMKEY_SHA256} diff --git a/cmake.deps/cmake/BuildLibuv.cmake b/cmake.deps/cmake/BuildLibuv.cmake @@ -1,3 +1,6 @@ +if(USE_EXISTING_SRC_DIR) + unset(LIBUV_URL) +endif() ExternalProject_Add(libuv URL ${LIBUV_URL} URL_HASH SHA256=${LIBUV_SHA256} diff --git a/cmake.deps/cmake/BuildLibvterm.cmake b/cmake.deps/cmake/BuildLibvterm.cmake @@ -24,6 +24,9 @@ else() install) endif() +if(USE_EXISTING_SRC_DIR) + unset(LIBVTERM_URL) +endif() ExternalProject_Add(libvterm URL ${LIBVTERM_URL} URL_HASH SHA256=${LIBVTERM_SHA256} diff --git a/cmake.deps/cmake/BuildLua.cmake b/cmake.deps/cmake/BuildLua.cmake @@ -42,6 +42,9 @@ set(LUA_INSTALL_TOP_ARG "INSTALL_TOP=${DEPS_INSTALL_DIR}") message(STATUS "Lua target is ${LUA_TARGET}") +if(USE_EXISTING_SRC_DIR) + unset(LUA_URL) +endif() ExternalProject_Add(lua URL ${LUA_URL} URL_HASH SHA256=${LUA_SHA256} diff --git a/cmake.deps/cmake/BuildLuajit.cmake b/cmake.deps/cmake/BuildLuajit.cmake @@ -15,6 +15,9 @@ function(BuildLuajit) set(_luajit_TARGET "luajit") endif() + if(USE_EXISTING_SRC_DIR) + unset(LUAJIT_URL) + endif() ExternalProject_Add(${_luajit_TARGET} URL ${LUAJIT_URL} URL_HASH SHA256=${LUAJIT_SHA256} diff --git a/cmake.deps/cmake/BuildLuarocks.cmake b/cmake.deps/cmake/BuildLuarocks.cmake @@ -81,6 +81,9 @@ else() message(FATAL_ERROR "Trying to build luarocks in an unsupported system ${CMAKE_SYSTEM_NAME}/${CMAKE_C_COMPILER_ID}") endif() +if(USE_EXISTING_SRC_DIR) + unset(LUAROCKS_URL) +endif() ExternalProject_Add(luarocks URL ${LUAROCKS_URL} URL_HASH SHA256=${LUAROCKS_SHA256} diff --git a/cmake.deps/cmake/BuildLuv.cmake b/cmake.deps/cmake/BuildLuv.cmake @@ -55,6 +55,9 @@ else() endif() endif() +if(USE_EXISTING_SRC_DIR) + unset(LUA_COMPAT53_URL) +endif() ExternalProject_Add(lua-compat-5.3 URL ${LUA_COMPAT53_URL} URL_HASH SHA256=${LUA_COMPAT53_SHA256} @@ -64,6 +67,9 @@ ExternalProject_Add(lua-compat-5.3 BUILD_COMMAND "" INSTALL_COMMAND "") +if(USE_EXISTING_SRC_DIR) + unset(LUV_URL) +endif() ExternalProject_Add(luv-static DEPENDS lua-compat-5.3 URL ${LUV_URL} diff --git a/cmake.deps/cmake/BuildMsgpack.cmake b/cmake.deps/cmake/BuildMsgpack.cmake @@ -21,6 +21,9 @@ if(MSVC) -DCMAKE_GENERATOR=${CMAKE_GENERATOR}) endif() +if(USE_EXISTING_SRC_DIR) + unset(MSGPACK_URL) +endif() ExternalProject_Add(msgpack URL ${MSGPACK_URL} URL_HASH SHA256=${MSGPACK_SHA256} diff --git a/cmake.deps/cmake/BuildTreesitter.cmake b/cmake.deps/cmake/BuildTreesitter.cmake @@ -17,6 +17,9 @@ else() ${MAKE_PRG} CC=${DEPS_C_COMPILER} PREFIX=${DEPS_INSTALL_DIR} install) endif() +if(USE_EXISTING_SRC_DIR) + unset(TREESITTER_URL) +endif() ExternalProject_Add(tree-sitter URL ${TREESITTER_URL} URL_HASH SHA256=${TREESITTER_SHA256} diff --git a/cmake.deps/cmake/BuildTreesitterParsers.cmake b/cmake.deps/cmake/BuildTreesitterParsers.cmake @@ -1,5 +1,8 @@ function(BuildTSParser LANG TS_URL TS_SHA256 TS_CMAKE_FILE) set(NAME treesitter-${LANG}) + if(USE_EXISTING_SRC_DIR) + unset(TS_URL) + endif() ExternalProject_Add(${NAME} URL ${TS_URL} URL_HASH SHA256=${TS_SHA256} diff --git a/cmake.deps/cmake/BuildUnibilium.cmake b/cmake.deps/cmake/BuildUnibilium.cmake @@ -16,6 +16,9 @@ else() set(UNIBILIUM_INSTALL_COMMAND ${MAKE_PRG} PREFIX=${DEPS_INSTALL_DIR} install) endif() +if(USE_EXISTING_SRC_DIR) + unset(UNIBILIUM_URL) +endif() ExternalProject_Add(unibilium URL ${UNIBILIUM_URL} URL_HASH SHA256=${UNIBILIUM_SHA256} diff --git a/cmake.deps/cmake/GetBinaryDeps.cmake b/cmake.deps/cmake/GetBinaryDeps.cmake @@ -22,6 +22,9 @@ function(GetBinaryDep) message(FATAL_ERROR "${URL_VARNAME} and ${HASH_VARNAME} must be set") endif() + if(USE_EXISTING_SRC_DIR) + unset(URL) + endif() ExternalProject_Add(${_gettool_TARGET} URL ${URL} URL_HASH SHA256=${HASH}