mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 12:27:24 +00:00 
			
		
		
		
	build: reuse code for deps.txt for both deps and main build
This commit is contained in:
		| @@ -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) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 dundargoc
					dundargoc