aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt27
-rw-r--r--cmake.deps/CMakeLists.txt19
-rw-r--r--cmake.deps/deps.txt5
-rw-r--r--cmake/Deps.cmake26
-rw-r--r--test/CMakeLists.txt6
5 files changed, 48 insertions, 35 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7c0f8483ea..1b070fef21 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -40,6 +40,12 @@ include(PreventInTreeBuilds)
include(Util)
#-------------------------------------------------------------------------------
+# User settings
+#-------------------------------------------------------------------------------
+
+set(DEPS_IGNORE_SHA FALSE)
+
+#-------------------------------------------------------------------------------
# Variables
#-------------------------------------------------------------------------------
set(FUNCS_DATA ${PROJECT_BINARY_DIR}/funcs_data.mpack)
@@ -47,9 +53,6 @@ set(TOUCHES_DIR ${PROJECT_BINARY_DIR}/touches)
file(GLOB DOCFILES CONFIGURE_DEPENDS ${PROJECT_SOURCE_DIR}/runtime/doc/*.txt)
-set_directory_properties(PROPERTIES
- EP_PREFIX "${DEPS_BUILD_DIR}")
-
if(NOT CI_BUILD)
set(CMAKE_INSTALL_MESSAGE NEVER)
endif()
@@ -241,7 +244,7 @@ add_glob_target(
GLOB_DIRS runtime scripts src test
GLOB_PAT *.lua
TOUCH_STRATEGY PER_DIR)
-add_dependencies(lintlua-luacheck lua-dev-deps)
+add_dependencies(lintlua-luacheck lua_dev_deps)
add_glob_target(
TARGET lintlua-stylua
@@ -300,26 +303,24 @@ if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR})
add_subdirectory(cmake.packaging)
endif()
+get_externalproject_options(uncrustify ${DEPS_IGNORE_SHA})
ExternalProject_Add(uncrustify
- URL https://github.com/uncrustify/uncrustify/archive/uncrustify-0.79.0.tar.gz
- URL_HASH SHA256=e7afaeabf636b7f0ce4e3e9747b95f7bd939613a8db49579755dddf44fedca5f
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/uncrustify
CMAKE_ARGS ${DEPS_CMAKE_ARGS}
EXCLUDE_FROM_ALL TRUE
- DOWNLOAD_NO_PROGRESS TRUE)
+ ${EXTERNALPROJECT_OPTIONS})
option(USE_BUNDLED_BUSTED "Use bundled busted" ON)
if(USE_BUNDLED_BUSTED)
- ExternalProject_Add(lua-dev-deps
- URL https://github.com/neovim/deps/raw/5a1f71cceb24990a0b15fd9a472a5f549f019248/opt/lua-dev-deps.tar.gz
- URL_HASH SHA256=27db2495f5eddc7fc191701ec9b291486853530c6125609d3197d03481e8d5a2
- DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/lua-dev-deps
+ get_externalproject_options(lua_dev_deps ${DEPS_IGNORE_SHA})
+ ExternalProject_Add(lua_dev_deps
+ DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/lua_dev_deps
SOURCE_DIR ${DEPS_SHARE_DIR}
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
EXCLUDE_FROM_ALL TRUE
- DOWNLOAD_NO_PROGRESS TRUE)
+ ${EXTERNALPROJECT_OPTIONS})
else()
- add_custom_target(lua-dev-deps)
+ add_custom_target(lua_dev_deps)
endif()
diff --git a/cmake.deps/CMakeLists.txt b/cmake.deps/CMakeLists.txt
index 4853a1ab14..5b1f149dd7 100644
--- a/cmake.deps/CMakeLists.txt
+++ b/cmake.deps/CMakeLists.txt
@@ -74,25 +74,6 @@ if(APPLE)
message(STATUS "Using deployment target ${CMAKE_OSX_DEPLOYMENT_TARGET}")
endif()
-set_directory_properties(PROPERTIES
- EP_PREFIX "${DEPS_BUILD_DIR}"
- CMAKE_CONFIGURE_DEPENDS deps.txt)
-
-file(READ deps.txt DEPENDENCIES)
-STRING(REGEX REPLACE "\n" ";" DEPENDENCIES "${DEPENDENCIES}")
-foreach(dep ${DEPENDENCIES})
- STRING(REGEX REPLACE " " ";" dep "${dep}")
- list(GET dep 0 name)
- list(GET dep 1 value)
- if(NOT ${name})
- # _URL variables must NOT be set when USE_EXISTING_SRC_DIR is set,
- # otherwise ExternalProject will try to re-download the sources.
- if(NOT USE_EXISTING_SRC_DIR)
- set(${name} ${value})
- endif()
- endif()
-endforeach()
-
if(USE_BUNDLED_LUAJIT)
set(LUA_ENGINE LuaJit)
elseif(USE_BUNDLED_LUA)
diff --git a/cmake.deps/deps.txt b/cmake.deps/deps.txt
index f76a6a1b70..f2b152640e 100644
--- a/cmake.deps/deps.txt
+++ b/cmake.deps/deps.txt
@@ -59,3 +59,8 @@ TREESITTER_MARKDOWN_URL https://github.com/MDeiml/tree-sitter-markdown/archive/v
TREESITTER_MARKDOWN_SHA256 4909d6023643f1afc3ab219585d4035b7403f3a17849782ab803c5f73c8a31d5
TREESITTER_URL https://github.com/tree-sitter/tree-sitter/archive/v0.22.6.tar.gz
TREESITTER_SHA256 e2b687f74358ab6404730b7fb1a1ced7ddb3780202d37595ecd7b20a8f41861f
+
+UNCRUSTIFY_URL https://github.com/uncrustify/uncrustify/archive/uncrustify-0.79.0.tar.gz
+UNCRUSTIFY_SHA256 e7afaeabf636b7f0ce4e3e9747b95f7bd939613a8db49579755dddf44fedca5f
+LUA_DEV_DEPS_URL https://github.com/neovim/deps/raw/5a1f71cceb24990a0b15fd9a472a5f549f019248/opt/lua-dev-deps.tar.gz
+LUA_DEV_DEPS_SHA256 27db2495f5eddc7fc191701ec9b291486853530c6125609d3197d03481e8d5a2
diff --git a/cmake/Deps.cmake b/cmake/Deps.cmake
index 413e3a08a9..398d9564cd 100644
--- a/cmake/Deps.cmake
+++ b/cmake/Deps.cmake
@@ -58,6 +58,32 @@ if(CMAKE_OSX_SYSROOT)
set(DEPS_C_COMPILER "${DEPS_C_COMPILER} -isysroot${CMAKE_OSX_SYSROOT}")
endif()
+get_filename_component(rootdir ${PROJECT_SOURCE_DIR} NAME)
+if(${rootdir} MATCHES "cmake.deps")
+ set(depsfile ${PROJECT_SOURCE_DIR}/deps.txt)
+else()
+ set(depsfile ${PROJECT_SOURCE_DIR}/cmake.deps/deps.txt)
+endif()
+
+set_directory_properties(PROPERTIES
+ EP_PREFIX "${DEPS_BUILD_DIR}"
+ CMAKE_CONFIGURE_DEPENDS ${depsfile})
+
+file(READ ${depsfile} DEPENDENCIES)
+STRING(REGEX REPLACE "\n" ";" DEPENDENCIES "${DEPENDENCIES}")
+foreach(dep ${DEPENDENCIES})
+ STRING(REGEX REPLACE " " ";" dep "${dep}")
+ list(GET dep 0 name)
+ list(GET dep 1 value)
+ if(NOT ${name})
+ # _URL variables must NOT be set when USE_EXISTING_SRC_DIR is set,
+ # otherwise ExternalProject will try to re-download the sources.
+ if(NOT USE_EXISTING_SRC_DIR)
+ set(${name} ${value})
+ endif()
+ endif()
+endforeach()
+
function(get_externalproject_options name DEPS_IGNORE_SHA)
string(TOUPPER ${name} name_allcaps)
set(url ${${name_allcaps}_URL})
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 3ae11bd1a7..8db05ac839 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -19,7 +19,7 @@ if(LUA_HAS_FFI)
${TEST_OPTIONS}
-P ${PROJECT_SOURCE_DIR}/cmake/RunTests.cmake
USES_TERMINAL)
- add_dependencies(unittest lua-dev-deps nvim)
+ add_dependencies(unittest lua_dev_deps nvim)
else()
message(WARNING "disabling unit tests: no Luajit FFI in ${LUA_PRG}")
endif()
@@ -35,7 +35,7 @@ add_custom_target(functionaltest
-P ${PROJECT_SOURCE_DIR}/cmake/RunTests.cmake
DEPENDS printenv-test printargs-test shell-test pwsh-test streams-test tty-test
USES_TERMINAL)
-add_dependencies(functionaltest lua-dev-deps nvim)
+add_dependencies(functionaltest lua_dev_deps nvim)
add_custom_target(benchmark
COMMAND ${CMAKE_COMMAND}
@@ -44,4 +44,4 @@ add_custom_target(benchmark
-P ${PROJECT_SOURCE_DIR}/cmake/RunTests.cmake
DEPENDS tty-test
USES_TERMINAL)
-add_dependencies(benchmark lua-dev-deps nvim)
+add_dependencies(benchmark lua_dev_deps nvim)