mirror of
https://github.com/neovim/neovim.git
synced 2024-09-17 20:58:20 -04:00
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.
This commit is contained in:
parent
bfe6b49447
commit
5ffd3d035d
@ -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}
|
||||
)
|
||||
|
@ -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()
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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()
|
||||
|
@ -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()
|
||||
|
@ -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)
|
||||
|
@ -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()
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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()
|
||||
|
Loading…
Reference in New Issue
Block a user