diff options
author | dundargoc <gocdundar@gmail.com> | 2024-03-18 13:29:24 +0100 |
---|---|---|
committer | dundargoc <33953936+dundargoc@users.noreply.github.com> | 2024-03-19 08:52:03 +0100 |
commit | 187ae6773592eeb98b38d686f52a8d3c5788ff4f (patch) | |
tree | 548eb3c63a590016ddb2b7f6f4e4c2ad640af8a5 | |
parent | d7448767232f5793248f7c64fdb77921666dc991 (diff) | |
download | rneovim-187ae6773592eeb98b38d686f52a8d3c5788ff4f.tar.gz rneovim-187ae6773592eeb98b38d686f52a8d3c5788ff4f.tar.bz2 rneovim-187ae6773592eeb98b38d686f52a8d3c5788ff4f.zip |
build: introduce variable DEPS_IGNORE_SHA for skipping dependency hash check
This will reduce friction as developers no longer need to provide a hash
when testing out different commits.
To skip the hash check, set `DEPS_IGNORE_SHA` to `TRUE` in
`cmake.deps/CMakeLists.txt`.
-rw-r--r-- | cmake.deps/CMakeLists.txt | 34 | ||||
-rw-r--r-- | cmake.deps/cmake/BuildGettext.cmake | 3 | ||||
-rw-r--r-- | cmake.deps/cmake/BuildLibiconv.cmake | 3 | ||||
-rw-r--r-- | cmake.deps/cmake/BuildLibuv.cmake | 3 | ||||
-rw-r--r-- | cmake.deps/cmake/BuildLibvterm.cmake | 3 | ||||
-rw-r--r-- | cmake.deps/cmake/BuildLpeg.cmake | 3 | ||||
-rw-r--r-- | cmake.deps/cmake/BuildLua.cmake | 3 | ||||
-rw-r--r-- | cmake.deps/cmake/BuildLuajit.cmake | 3 | ||||
-rw-r--r-- | cmake.deps/cmake/BuildLuv.cmake | 14 | ||||
-rw-r--r-- | cmake.deps/cmake/BuildMsgpack.cmake | 3 | ||||
-rw-r--r-- | cmake.deps/cmake/BuildTreesitter.cmake | 3 | ||||
-rw-r--r-- | cmake.deps/cmake/BuildTreesitterParsers.cmake | 5 | ||||
-rw-r--r-- | cmake.deps/cmake/BuildUnibilium.cmake | 3 | ||||
-rw-r--r-- | cmake/Deps.cmake | 8 |
14 files changed, 58 insertions, 33 deletions
diff --git a/cmake.deps/CMakeLists.txt b/cmake.deps/CMakeLists.txt index e37b606bd9..4853a1ab14 100644 --- a/cmake.deps/CMakeLists.txt +++ b/cmake.deps/CMakeLists.txt @@ -17,21 +17,13 @@ include(Deps) include(Find) include(Util) -set_default_buildtype(Release) -get_property(isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) -if(NOT isMultiConfig) - list(APPEND DEPS_CMAKE_ARGS -D CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}) -endif() +#------------------------------------------------------------------------------- +# User settings +#------------------------------------------------------------------------------- -set(DEFAULT_MAKE_CFLAGS CFLAGS+=-g) - -check_c_compiler_flag(-Og HAS_OG_FLAG) -if(HAS_OG_FLAG) - set(DEFAULT_MAKE_CFLAGS CFLAGS+=-Og ${DEFAULT_MAKE_CFLAGS}) -endif() - -set(DEPS_INCLUDE_FLAGS "-I${DEPS_INSTALL_DIR}/include -I${DEPS_INSTALL_DIR}/include/luajit-2.1") +set(DEPS_IGNORE_SHA FALSE) +# Options option(USE_BUNDLED "Use bundled dependencies." ON) option(USE_BUNDLED_LIBUV "Use the bundled libuv." ${USE_BUNDLED}) @@ -45,7 +37,6 @@ option(USE_BUNDLED_MSGPACK "Use the bundled msgpack." ${USE_BUNDLED}) option(USE_BUNDLED_TS "Use the bundled treesitter runtime." ${USE_BUNDLED}) option(USE_BUNDLED_TS_PARSERS "Use the bundled treesitter parsers." ${USE_BUNDLED}) option(USE_BUNDLED_UNIBILIUM "Use the bundled unibilium." ${USE_BUNDLED}) - if(USE_BUNDLED AND MSVC) option(USE_BUNDLED_GETTEXT "Use the bundled version of gettext." ON) option(USE_BUNDLED_LIBICONV "Use the bundled version of libiconv." ON) @@ -56,6 +47,21 @@ endif() option(USE_EXISTING_SRC_DIR "Skip download of deps sources in case of existing source directory." OFF) +set_default_buildtype(Release) +get_property(isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) +if(NOT isMultiConfig) + list(APPEND DEPS_CMAKE_ARGS -D CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}) +endif() + +set(DEFAULT_MAKE_CFLAGS CFLAGS+=-g) + +check_c_compiler_flag(-Og HAS_OG_FLAG) +if(HAS_OG_FLAG) + set(DEFAULT_MAKE_CFLAGS CFLAGS+=-Og ${DEFAULT_MAKE_CFLAGS}) +endif() + +set(DEPS_INCLUDE_FLAGS "-I${DEPS_INSTALL_DIR}/include -I${DEPS_INSTALL_DIR}/include/luajit-2.1") + # If the macOS deployment target is not set manually (via $MACOSX_DEPLOYMENT_TARGET), # fall back to local system version. Needs to be done here and in top-level CMakeLists.txt. if(APPLE) diff --git a/cmake.deps/cmake/BuildGettext.cmake b/cmake.deps/cmake/BuildGettext.cmake index 33cfbe1a22..0d6b323fa2 100644 --- a/cmake.deps/cmake/BuildGettext.cmake +++ b/cmake.deps/cmake/BuildGettext.cmake @@ -1,7 +1,8 @@ if(MSVC) + get_sha(gettext ${DEPS_IGNORE_SHA}) ExternalProject_Add(gettext URL ${GETTEXT_URL} - URL_HASH SHA256=${GETTEXT_SHA256} + ${EXTERNALPROJECT_URL_HASH} DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/gettext PATCH_COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/cmake/GettextCMakeLists.txt diff --git a/cmake.deps/cmake/BuildLibiconv.cmake b/cmake.deps/cmake/BuildLibiconv.cmake index 362e9b4609..f4d7ace2c6 100644 --- a/cmake.deps/cmake/BuildLibiconv.cmake +++ b/cmake.deps/cmake/BuildLibiconv.cmake @@ -1,7 +1,8 @@ if(MSVC) + get_sha(libiconv ${DEPS_IGNORE_SHA}) ExternalProject_Add(libiconv URL ${LIBICONV_URL} - URL_HASH SHA256=${LIBICONV_SHA256} + ${EXTERNALPROJECT_URL_HASH} DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/libiconv PATCH_COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/cmake/LibiconvCMakeLists.txt diff --git a/cmake.deps/cmake/BuildLibuv.cmake b/cmake.deps/cmake/BuildLibuv.cmake index e7f7fdf253..98d78db8f1 100644 --- a/cmake.deps/cmake/BuildLibuv.cmake +++ b/cmake.deps/cmake/BuildLibuv.cmake @@ -1,6 +1,7 @@ +get_sha(libuv ${DEPS_IGNORE_SHA}) ExternalProject_Add(libuv URL ${LIBUV_URL} - URL_HASH SHA256=${LIBUV_SHA256} + ${EXTERNALPROJECT_URL_HASH} DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/libuv CMAKE_ARGS ${DEPS_CMAKE_ARGS} -D CMAKE_INSTALL_LIBDIR=lib diff --git a/cmake.deps/cmake/BuildLibvterm.cmake b/cmake.deps/cmake/BuildLibvterm.cmake index 63f5872cb2..f928faad01 100644 --- a/cmake.deps/cmake/BuildLibvterm.cmake +++ b/cmake.deps/cmake/BuildLibvterm.cmake @@ -1,6 +1,7 @@ +get_sha(libvterm ${DEPS_IGNORE_SHA}) ExternalProject_Add(libvterm URL ${LIBVTERM_URL} - URL_HASH SHA256=${LIBVTERM_SHA256} + ${EXTERNALPROJECT_URL_HASH} DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/libvterm PATCH_COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/cmake/LibvtermCMakeLists.txt diff --git a/cmake.deps/cmake/BuildLpeg.cmake b/cmake.deps/cmake/BuildLpeg.cmake index b65baf4c0f..e46a3cb16f 100644 --- a/cmake.deps/cmake/BuildLpeg.cmake +++ b/cmake.deps/cmake/BuildLpeg.cmake @@ -1,6 +1,7 @@ +get_sha(lpeg ${DEPS_IGNORE_SHA}) ExternalProject_Add(lpeg URL ${LPEG_URL} - URL_HASH SHA256=${LPEG_SHA256} + ${EXTERNALPROJECT_URL_HASH} DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/lpeg PATCH_COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/cmake/LpegCMakeLists.txt diff --git a/cmake.deps/cmake/BuildLua.cmake b/cmake.deps/cmake/BuildLua.cmake index 96b7a903f9..e47720de47 100644 --- a/cmake.deps/cmake/BuildLua.cmake +++ b/cmake.deps/cmake/BuildLua.cmake @@ -40,9 +40,10 @@ set(LUA_CONFIGURE_COMMAND -i ${DEPS_BUILD_DIR}/src/lua/src/luaconf.h) set(LUA_INSTALL_TOP_ARG "INSTALL_TOP=${DEPS_INSTALL_DIR}") +get_sha(lua ${DEPS_IGNORE_SHA}) ExternalProject_Add(lua URL ${LUA_URL} - URL_HASH SHA256=${LUA_SHA256} + ${EXTERNALPROJECT_URL_HASH} DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/lua CONFIGURE_COMMAND "${LUA_CONFIGURE_COMMAND}" BUILD_IN_SOURCE 1 diff --git a/cmake.deps/cmake/BuildLuajit.cmake b/cmake.deps/cmake/BuildLuajit.cmake index 81fa6446c4..de9add43ca 100644 --- a/cmake.deps/cmake/BuildLuajit.cmake +++ b/cmake.deps/cmake/BuildLuajit.cmake @@ -11,9 +11,10 @@ function(BuildLuajit) set(_luajit_TARGET "luajit") endif() + get_sha(luajit ${DEPS_IGNORE_SHA}) ExternalProject_Add(${_luajit_TARGET} URL ${LUAJIT_URL} - URL_HASH SHA256=${LUAJIT_SHA256} + ${EXTERNALPROJECT_URL_HASH} DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/${_luajit_TARGET} CONFIGURE_COMMAND "${_luajit_CONFIGURE_COMMAND}" BUILD_IN_SOURCE 1 diff --git a/cmake.deps/cmake/BuildLuv.cmake b/cmake.deps/cmake/BuildLuv.cmake index 9830ea717a..bf87cde68b 100644 --- a/cmake.deps/cmake/BuildLuv.cmake +++ b/cmake.deps/cmake/BuildLuv.cmake @@ -1,6 +1,6 @@ set(LUV_CMAKE_ARGS -D LUA_BUILD_TYPE=System - -D LUA_COMPAT53_DIR=${DEPS_BUILD_DIR}/src/lua-compat-5.3 + -D LUA_COMPAT53_DIR=${DEPS_BUILD_DIR}/src/lua_compat53 -D WITH_SHARED_LIBUV=ON -D BUILD_STATIC_LIBS=ON -D BUILD_MODULE=OFF) @@ -17,19 +17,21 @@ if(CMAKE_GENERATOR MATCHES "Unix Makefiles" AND list(APPEND LUV_CMAKE_ARGS -D CMAKE_MAKE_PROGRAM=gmake) endif() -ExternalProject_Add(lua-compat-5.3 +get_sha(lua_compat53 ${DEPS_IGNORE_SHA}) +ExternalProject_Add(lua_compat53 URL ${LUA_COMPAT53_URL} - URL_HASH SHA256=${LUA_COMPAT53_SHA256} - DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/lua-compat-5.3 + ${EXTERNALPROJECT_URL_HASH} + DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/lua_compat53 CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND "" ${EXTERNALPROJECT_OPTIONS}) +get_sha(luv ${DEPS_IGNORE_SHA}) ExternalProject_Add(luv - DEPENDS lua-compat-5.3 + DEPENDS lua_compat53 URL ${LUV_URL} - URL_HASH SHA256=${LUV_SHA256} + ${EXTERNALPROJECT_URL_HASH} DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/luv SOURCE_DIR ${DEPS_BUILD_DIR}/src/luv CMAKE_ARGS ${DEPS_CMAKE_ARGS} ${LUV_CMAKE_ARGS} diff --git a/cmake.deps/cmake/BuildMsgpack.cmake b/cmake.deps/cmake/BuildMsgpack.cmake index f60bdad5c9..8cc648db13 100644 --- a/cmake.deps/cmake/BuildMsgpack.cmake +++ b/cmake.deps/cmake/BuildMsgpack.cmake @@ -1,6 +1,7 @@ +get_sha(msgpack ${DEPS_IGNORE_SHA}) ExternalProject_Add(msgpack URL ${MSGPACK_URL} - URL_HASH SHA256=${MSGPACK_SHA256} + ${EXTERNALPROJECT_URL_HASH} DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/msgpack CMAKE_ARGS ${DEPS_CMAKE_ARGS} -D MSGPACK_BUILD_TESTS=OFF diff --git a/cmake.deps/cmake/BuildTreesitter.cmake b/cmake.deps/cmake/BuildTreesitter.cmake index cd27a13ee3..839b7b19c3 100644 --- a/cmake.deps/cmake/BuildTreesitter.cmake +++ b/cmake.deps/cmake/BuildTreesitter.cmake @@ -1,6 +1,7 @@ +get_sha(treesitter ${DEPS_IGNORE_SHA}) ExternalProject_Add(treesitter URL ${TREESITTER_URL} - URL_HASH SHA256=${TREESITTER_SHA256} + ${EXTERNALPROJECT_URL_HASH} DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/treesitter PATCH_COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/cmake/TreesitterCMakeLists.txt diff --git a/cmake.deps/cmake/BuildTreesitterParsers.cmake b/cmake.deps/cmake/BuildTreesitterParsers.cmake index eddc896e69..d251d65354 100644 --- a/cmake.deps/cmake/BuildTreesitterParsers.cmake +++ b/cmake.deps/cmake/BuildTreesitterParsers.cmake @@ -18,12 +18,11 @@ function(BuildTSParser) set(NAME treesitter-${TS_LANG}) string(TOUPPER "TREESITTER_${TS_LANG}_URL" URL_VARNAME) set(URL ${${URL_VARNAME}}) - string(TOUPPER "TREESITTER_${TS_LANG}_SHA256" HASH_VARNAME) - set(HASH ${${HASH_VARNAME}}) + get_sha(treesitter_${TS_LANG} ${DEPS_IGNORE_SHA}) ExternalProject_Add(${NAME} URL ${URL} - URL_HASH SHA256=${HASH} + ${EXTERNALPROJECT_URL_HASH} DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/${NAME} PATCH_COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/cmake/${TS_CMAKE_FILE} diff --git a/cmake.deps/cmake/BuildUnibilium.cmake b/cmake.deps/cmake/BuildUnibilium.cmake index 9f1871aaf5..5cbf8a961b 100644 --- a/cmake.deps/cmake/BuildUnibilium.cmake +++ b/cmake.deps/cmake/BuildUnibilium.cmake @@ -1,6 +1,7 @@ +get_sha(unibilium ${DEPS_IGNORE_SHA}) ExternalProject_Add(unibilium URL ${UNIBILIUM_URL} - URL_HASH SHA256=${UNIBILIUM_SHA256} + ${EXTERNALPROJECT_URL_HASH} DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/unibilium CMAKE_ARGS ${DEPS_CMAKE_ARGS} CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS} diff --git a/cmake/Deps.cmake b/cmake/Deps.cmake index 9966e42084..4700d08427 100644 --- a/cmake/Deps.cmake +++ b/cmake/Deps.cmake @@ -54,3 +54,11 @@ if(CMAKE_OSX_ARCHITECTURES) set(DEPS_C_COMPILER "${DEPS_C_COMPILER} -arch ${ARCH}") endforeach() endif() + +function(get_sha name ignore) + unset(EXTERNALPROJECT_URL_HASH) + if(NOT ${ignore}) + string(TOUPPER ${name} name_allcaps) + set(EXTERNALPROJECT_URL_HASH URL_HASH SHA256=${${name_allcaps}_SHA256} PARENT_SCOPE) + endif() +endfunction() |