mirror of
https://github.com/neovim/neovim.git
synced 2024-12-19 02:34:59 -07:00
build: reuse code for deps.txt for both deps and main build
This commit is contained in:
parent
1c6d920052
commit
f09f5c45fa
@ -39,6 +39,12 @@ include(InstallHelpers)
|
||||
include(PreventInTreeBuilds)
|
||||
include(Util)
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# User settings
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
set(DEPS_IGNORE_SHA FALSE)
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# Variables
|
||||
#-------------------------------------------------------------------------------
|
||||
@ -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()
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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})
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user