neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

commit 5ffd3d035dfd3d7f6e66edbaa895b98792ba3de3
parent bfe6b49447744cea1cd941660b2a3a501a0701cb
Author: dundargoc <33953936+dundargoc@users.noreply.github.com>
Date:   Sun, 19 Feb 2023 21:11:27 +0100

build: build all dependencies in parallel (#22329)

Previously, all targets were connected in one main target called
third-party in order to remove any potentially conflicting shared
library. We can make each dependency target independent of each other by
only removing shared libraries from luajit and msgpack in their own
targets, as only these has unwanted shared libraries.
Diffstat:
Mcmake.deps/CMakeLists.txt | 20--------------------
Mcmake.deps/cmake/BuildGettext.cmake | 1-
Mcmake.deps/cmake/BuildLibiconv.cmake | 2--
Mcmake.deps/cmake/BuildLibtermkey.cmake | 2--
Mcmake.deps/cmake/BuildLibuv.cmake | 2--
Mcmake.deps/cmake/BuildLibvterm.cmake | 2--
Mcmake.deps/cmake/BuildLua.cmake | 6+-----
Mcmake.deps/cmake/BuildLuajit.cmake | 8+++++++-
Mcmake.deps/cmake/BuildLuarocks.cmake | 22+++++++---------------
Mcmake.deps/cmake/BuildLuv.cmake | 1-
Mcmake.deps/cmake/BuildMsgpack.cmake | 8+++++++-
Mcmake.deps/cmake/BuildTreesitter.cmake | 2--
Mcmake.deps/cmake/BuildUnibilium.cmake | 2--
Mcmake.deps/cmake/GetBinaryDeps.cmake | 1-
14 files changed, 22 insertions(+), 57 deletions(-)

diff --git a/cmake.deps/CMakeLists.txt b/cmake.deps/CMakeLists.txt @@ -274,23 +274,3 @@ if(WIN32) GetBinaryDep(TARGET win32yank_X86_64 INSTALL_COMMAND ${CMAKE_COMMAND} -E copy win32yank.exe ${DEPS_INSTALL_DIR}/bin) endif() - -# clean-shared-libraries removes ${DEPS_INSTALL_DIR}/lib/nvim/parser/c.dll, -# resulting in MSVC build failure in CI. -if (MSVC) - set(ALL_DEPS ${THIRD_PARTY_DEPS}) -else() - add_custom_target(clean-shared-libraries - COMMAND ${CMAKE_COMMAND} - -D REMOVE_FILE_GLOB=${DEPS_INSTALL_DIR}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}*${CMAKE_SHARED_LIBRARY_SUFFIX}* - -P ${PROJECT_SOURCE_DIR}/cmake/RemoveFiles.cmake - DEPENDS ${THIRD_PARTY_DEPS} - ) - set(ALL_DEPS clean-shared-libraries) -endif() - -# TODO(justinmk): does anyone use this target? -add_custom_target(third-party ALL - COMMAND ${CMAKE_COMMAND} -E touch .third-party - DEPENDS ${ALL_DEPS} -) diff --git a/cmake.deps/cmake/BuildGettext.cmake b/cmake.deps/cmake/BuildGettext.cmake @@ -18,7 +18,6 @@ else() message(FATAL_ERROR "Trying to build gettext in an unsupported system ${CMAKE_SYSTEM_NAME}/${CMAKE_C_COMPILER_ID}") endif() -list(APPEND THIRD_PARTY_DEPS gettext) if(USE_BUNDLED_LIBICONV) add_dependencies(gettext libiconv) endif() diff --git a/cmake.deps/cmake/BuildLibiconv.cmake b/cmake.deps/cmake/BuildLibiconv.cmake @@ -15,5 +15,3 @@ if(MSVC) else() message(FATAL_ERROR "Trying to build libiconv in an unsupported system ${CMAKE_SYSTEM_NAME}/${CMAKE_C_COMPILER_ID}") endif() - -list(APPEND THIRD_PARTY_DEPS libiconv) diff --git a/cmake.deps/cmake/BuildLibtermkey.cmake b/cmake.deps/cmake/BuildLibtermkey.cmake @@ -14,5 +14,3 @@ ExternalProject_Add(libtermkey -D UNIBILIUM_INCLUDE_DIRS=${DEPS_INSTALL_DIR}/include -D UNIBILIUM_LIBRARIES=${DEPS_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}unibilium${CMAKE_STATIC_LIBRARY_SUFFIX} CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS}) - -list(APPEND THIRD_PARTY_DEPS libtermkey) diff --git a/cmake.deps/cmake/BuildLibuv.cmake b/cmake.deps/cmake/BuildLibuv.cmake @@ -11,5 +11,3 @@ ExternalProject_Add(libuv -D BUILD_TESTING=OFF -D LIBUV_BUILD_SHARED=OFF CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS}) - -list(APPEND THIRD_PARTY_DEPS libuv) diff --git a/cmake.deps/cmake/BuildLibvterm.cmake b/cmake.deps/cmake/BuildLibvterm.cmake @@ -11,5 +11,3 @@ ExternalProject_Add(libvterm ${DEPS_BUILD_DIR}/src/libvterm/CMakeLists.txt CMAKE_ARGS ${DEPS_CMAKE_ARGS} CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS}) - -list(APPEND THIRD_PARTY_DEPS libvterm) diff --git a/cmake.deps/cmake/BuildLua.cmake b/cmake.deps/cmake/BuildLua.cmake @@ -55,15 +55,11 @@ ExternalProject_Add(lua BUILD_COMMAND ${MAKE_PRG} ${LUA_INSTALL_TOP_ARG} ${LUA_TARGET} INSTALL_COMMAND ${MAKE_PRG} ${LUA_INSTALL_TOP_ARG} install) -list(APPEND THIRD_PARTY_DEPS lua) - set(BUSTED ${DEPS_INSTALL_DIR}/bin/busted) set(BUSTED_LUA ${BUSTED}-lua) add_custom_command(OUTPUT ${BUSTED_LUA} COMMAND sed -e 's/^exec/exec $$LUA_DEBUGGER/' -e 's/jit//g' < ${BUSTED} > ${BUSTED_LUA} && chmod +x ${BUSTED_LUA} DEPENDS lua busted ${BUSTED}) -add_custom_target(busted-lua +add_custom_target(busted-lua ALL DEPENDS ${DEPS_INSTALL_DIR}/bin/busted-lua) - -list(APPEND THIRD_PARTY_DEPS busted-lua) diff --git a/cmake.deps/cmake/BuildLuajit.cmake b/cmake.deps/cmake/BuildLuajit.cmake @@ -149,4 +149,10 @@ else() message(FATAL_ERROR "Trying to build luajit in an unsupported system ${CMAKE_SYSTEM_NAME}/${CMAKE_C_COMPILER_ID}") endif() -list(APPEND THIRD_PARTY_DEPS luajit) +if (NOT MSVC) + add_custom_target(clean_shared_libraries_luajit ALL + COMMAND ${CMAKE_COMMAND} + -D REMOVE_FILE_GLOB=${DEPS_INSTALL_DIR}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}*${CMAKE_SHARED_LIBRARY_SUFFIX}* + -P ${PROJECT_SOURCE_DIR}/cmake/RemoveFiles.cmake) + add_dependencies(clean_shared_libraries_luajit luajit) +endif() diff --git a/cmake.deps/cmake/BuildLuarocks.cmake b/cmake.deps/cmake/BuildLuarocks.cmake @@ -94,8 +94,6 @@ ExternalProject_Add(luarocks BUILD_COMMAND "" INSTALL_COMMAND "${LUAROCKS_INSTALL_COMMAND}") -list(APPEND THIRD_PARTY_DEPS luarocks) - if(USE_BUNDLED_LUAJIT) add_dependencies(luarocks luajit) elseif(USE_BUNDLED_LUA) @@ -107,23 +105,20 @@ set(ROCKS_DIR ${DEPS_LIB_DIR}/luarocks/rocks-${LUA_VERSION}) add_custom_command(OUTPUT ${ROCKS_DIR}/mpack COMMAND ${LUAROCKS_BINARY} build mpack 1.0.8-0 ${LUAROCKS_BUILDARGS} DEPENDS luarocks) -add_custom_target(mpack DEPENDS ${ROCKS_DIR}/mpack) -list(APPEND THIRD_PARTY_DEPS mpack) +add_custom_target(mpack ALL DEPENDS ${ROCKS_DIR}/mpack) # lpeg add_custom_command(OUTPUT ${ROCKS_DIR}/lpeg COMMAND ${LUAROCKS_BINARY} build lpeg 1.0.2-1 ${LUAROCKS_BUILDARGS} DEPENDS mpack) -add_custom_target(lpeg DEPENDS ${ROCKS_DIR}/lpeg) -list(APPEND THIRD_PARTY_DEPS lpeg) +add_custom_target(lpeg ALL DEPENDS ${ROCKS_DIR}/lpeg) if((NOT USE_BUNDLED_LUAJIT) AND USE_BUNDLED_LUA) # luabitop add_custom_command(OUTPUT ${ROCKS_DIR}/luabitop COMMAND ${LUAROCKS_BINARY} build luabitop 1.0.2-3 ${LUAROCKS_BUILDARGS} DEPENDS lpeg) - add_custom_target(luabitop DEPENDS ${ROCKS_DIR}/luabitop) - list(APPEND THIRD_PARTY_DEPS luabitop) + add_custom_target(luabitop ALL DEPENDS ${ROCKS_DIR}/luabitop) endif() if(USE_BUNDLED_BUSTED) @@ -137,7 +132,7 @@ if(USE_BUNDLED_BUSTED) add_custom_command(OUTPUT ${ROCKS_DIR}/penlight COMMAND ${LUAROCKS_BINARY} build penlight 1.5.4-1 ${LUAROCKS_BUILDARGS} DEPENDS ${PENLIGHT_DEPENDS}) - add_custom_target(penlight DEPENDS ${ROCKS_DIR}/penlight) + add_custom_target(penlight ALL DEPENDS ${ROCKS_DIR}/penlight) # busted if(WIN32) @@ -150,22 +145,19 @@ if(USE_BUNDLED_BUSTED) add_custom_command(OUTPUT ${BUSTED_EXE} COMMAND ${LUAROCKS_BINARY} build busted 2.1.1 ${LUAROCKS_BUILDARGS} DEPENDS penlight) - add_custom_target(busted DEPENDS ${BUSTED_EXE}) + add_custom_target(busted ALL DEPENDS ${BUSTED_EXE}) # luacheck add_custom_command(OUTPUT ${LUACHECK_EXE} COMMAND ${LUAROCKS_BINARY} build luacheck 0.23.0-1 ${LUAROCKS_BUILDARGS} DEPENDS busted) - add_custom_target(luacheck DEPENDS ${LUACHECK_EXE}) + add_custom_target(luacheck ALL DEPENDS ${LUACHECK_EXE}) if (NOT USE_BUNDLED_LUAJIT) # coxpcall add_custom_command(OUTPUT ${ROCKS_DIR}/coxpcall COMMAND ${LUAROCKS_BINARY} build coxpcall 1.16.0-1 ${LUAROCKS_BUILDARGS} DEPENDS luarocks) - add_custom_target(coxpcall DEPENDS ${ROCKS_DIR}/coxpcall) - list(APPEND THIRD_PARTY_DEPS coxpcall) + add_custom_target(coxpcall ALL DEPENDS ${ROCKS_DIR}/coxpcall) endif() - - list(APPEND THIRD_PARTY_DEPS busted luacheck) endif() diff --git a/cmake.deps/cmake/BuildLuv.cmake b/cmake.deps/cmake/BuildLuv.cmake @@ -60,7 +60,6 @@ ExternalProject_Add(luv-static CMAKE_ARGS ${DEPS_CMAKE_ARGS} ${LUV_CMAKE_ARGS} CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS}) -list(APPEND THIRD_PARTY_DEPS luv-static) if(USE_BUNDLED_LUAJIT) add_dependencies(luv-static luajit) elseif(USE_BUNDLED_LUA) diff --git a/cmake.deps/cmake/BuildMsgpack.cmake b/cmake.deps/cmake/BuildMsgpack.cmake @@ -11,4 +11,10 @@ ExternalProject_Add(msgpack -D MSGPACK_BUILD_EXAMPLES=OFF CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS}) -list(APPEND THIRD_PARTY_DEPS msgpack) +if (NOT MSVC) + add_custom_target(clean_shared_libraries_msgpack ALL + COMMAND ${CMAKE_COMMAND} + -D REMOVE_FILE_GLOB=${DEPS_INSTALL_DIR}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}*${CMAKE_SHARED_LIBRARY_SUFFIX}* + -P ${PROJECT_SOURCE_DIR}/cmake/RemoveFiles.cmake) + add_dependencies(clean_shared_libraries_msgpack msgpack) +endif() diff --git a/cmake.deps/cmake/BuildTreesitter.cmake b/cmake.deps/cmake/BuildTreesitter.cmake @@ -12,5 +12,3 @@ ExternalProject_Add(tree-sitter ${DEPS_BUILD_DIR}/src/tree-sitter/CMakeLists.txt CMAKE_ARGS ${DEPS_CMAKE_ARGS} CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS}) - -list(APPEND THIRD_PARTY_DEPS tree-sitter) diff --git a/cmake.deps/cmake/BuildUnibilium.cmake b/cmake.deps/cmake/BuildUnibilium.cmake @@ -8,5 +8,3 @@ ExternalProject_Add(unibilium DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/unibilium CMAKE_ARGS ${DEPS_CMAKE_ARGS} CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS}) - -list(APPEND THIRD_PARTY_DEPS unibilium) diff --git a/cmake.deps/cmake/GetBinaryDeps.cmake b/cmake.deps/cmake/GetBinaryDeps.cmake @@ -35,5 +35,4 @@ function(GetBinaryDep) BUILD_COMMAND "" INSTALL_COMMAND ${CMAKE_COMMAND} -E make_directory ${DEPS_INSTALL_DIR}/bin COMMAND "${_gettool_INSTALL_COMMAND}") - list(APPEND THIRD_PARTY_DEPS ${__gettool_TARGET}) endfunction()