aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmake.deps/CMakeLists.txt34
-rw-r--r--cmake.deps/cmake/BuildGettext.cmake3
-rw-r--r--cmake.deps/cmake/BuildLibiconv.cmake3
-rw-r--r--cmake.deps/cmake/BuildLibuv.cmake3
-rw-r--r--cmake.deps/cmake/BuildLibvterm.cmake3
-rw-r--r--cmake.deps/cmake/BuildLpeg.cmake3
-rw-r--r--cmake.deps/cmake/BuildLua.cmake3
-rw-r--r--cmake.deps/cmake/BuildLuajit.cmake3
-rw-r--r--cmake.deps/cmake/BuildLuv.cmake14
-rw-r--r--cmake.deps/cmake/BuildMsgpack.cmake3
-rw-r--r--cmake.deps/cmake/BuildTreesitter.cmake3
-rw-r--r--cmake.deps/cmake/BuildTreesitterParsers.cmake5
-rw-r--r--cmake.deps/cmake/BuildUnibilium.cmake3
-rw-r--r--cmake/Deps.cmake8
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()