aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordundargoc <33953936+dundargoc@users.noreply.github.com>2023-02-19 21:11:27 +0100
committerGitHub <noreply@github.com>2023-02-19 21:11:27 +0100
commit5ffd3d035dfd3d7f6e66edbaa895b98792ba3de3 (patch)
tree1c2f43a2776b5ea4afc371a9831376a461f0ca37
parentbfe6b49447744cea1cd941660b2a3a501a0701cb (diff)
downloadrneovim-5ffd3d035dfd3d7f6e66edbaa895b98792ba3de3.tar.gz
rneovim-5ffd3d035dfd3d7f6e66edbaa895b98792ba3de3.tar.bz2
rneovim-5ffd3d035dfd3d7f6e66edbaa895b98792ba3de3.zip
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.
-rw-r--r--cmake.deps/CMakeLists.txt20
-rw-r--r--cmake.deps/cmake/BuildGettext.cmake1
-rw-r--r--cmake.deps/cmake/BuildLibiconv.cmake2
-rw-r--r--cmake.deps/cmake/BuildLibtermkey.cmake2
-rw-r--r--cmake.deps/cmake/BuildLibuv.cmake2
-rw-r--r--cmake.deps/cmake/BuildLibvterm.cmake2
-rw-r--r--cmake.deps/cmake/BuildLua.cmake6
-rw-r--r--cmake.deps/cmake/BuildLuajit.cmake8
-rw-r--r--cmake.deps/cmake/BuildLuarocks.cmake22
-rw-r--r--cmake.deps/cmake/BuildLuv.cmake1
-rw-r--r--cmake.deps/cmake/BuildMsgpack.cmake8
-rw-r--r--cmake.deps/cmake/BuildTreesitter.cmake2
-rw-r--r--cmake.deps/cmake/BuildUnibilium.cmake2
-rw-r--r--cmake.deps/cmake/GetBinaryDeps.cmake1
14 files changed, 22 insertions, 57 deletions
diff --git a/cmake.deps/CMakeLists.txt b/cmake.deps/CMakeLists.txt
index 7e40609193..d255c1fd9d 100644
--- 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
index 31d84b76e4..7db7d5e4fe 100644
--- 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
index 4b9c07ed6c..244cf030ae 100644
--- 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
index 5836b05494..e137faaa0c 100644
--- 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
index 6b3c8643a0..3c678c0877 100644
--- 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
index b75987eb24..c86a798a57 100644
--- 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
index b5ac8368a6..759211b653 100644
--- 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
index 1476ac31f4..4347e7e1da 100644
--- 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
index e50f50798a..b8cc512a17 100644
--- 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
index 155d6ced4e..0cb0208bea 100644
--- 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
index b1a77ee835..ef7568ae0a 100644
--- 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
index d906e6aa59..5b3e3497ad 100644
--- 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
index 9a8caf89d1..a51e0cd8f1 100644
--- 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
index da4376998b..d1406350dd 100644
--- 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()