From 905dd49fece0903dba4e5a618f503d0237415b14 Mon Sep 17 00:00:00 2001 From: Thomas Vigouroux Date: Mon, 16 Aug 2021 15:37:01 +0200 Subject: feat(treesitter): bundle Lua parser and queries parser from https://github.com/MunifTanjim/tree-sitter-lua queries from nvim-treesitter --- cmake.deps/cmake/BuildTreesitterParsers.cmake | 56 ++++++++++++------------- cmake.deps/cmake/TreesitterParserCMakeLists.txt | 7 ++-- 2 files changed, 32 insertions(+), 31 deletions(-) (limited to 'cmake.deps/cmake') diff --git a/cmake.deps/cmake/BuildTreesitterParsers.cmake b/cmake.deps/cmake/BuildTreesitterParsers.cmake index 1ff86e89b9..c8f5815cd2 100644 --- a/cmake.deps/cmake/BuildTreesitterParsers.cmake +++ b/cmake.deps/cmake/BuildTreesitterParsers.cmake @@ -1,29 +1,29 @@ -ExternalProject_Add(treesitter-c -PREFIX ${DEPS_BUILD_DIR} -URL ${TREESITTER_C_URL} -DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/treesitter-c -DOWNLOAD_COMMAND ${CMAKE_COMMAND} - -DPREFIX=${DEPS_BUILD_DIR} - -DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/treesitter-c - -DURL=${TREESITTER_C_URL} - -DEXPECTED_SHA256=${TREESITTER_C_SHA256} - -DTARGET=treesitter-c - -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR} - -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake -PATCH_COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_CURRENT_SOURCE_DIR}/cmake/TreesitterParserCMakeLists.txt - ${DEPS_BUILD_DIR}/src/treesitter-c/CMakeLists.txt -CMAKE_ARGS - -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} - -DCMAKE_GENERATOR=${CMAKE_GENERATOR} - -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} - ${BUILD_TYPE_STRING} - -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} - -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES_ALT_SEP} - # Pass toolchain - -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} - -DPARSERLANG=c +function(BuildTSParser LANG TS_URL TS_SHA256 TS_CMAKE_FILE) + set(NAME treesitter-${LANG}) + ExternalProject_Add(${NAME} + PREFIX ${DEPS_BUILD_DIR} + URL ${TREESITTER_C_URL} + DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/${NAME} + DOWNLOAD_COMMAND ${CMAKE_COMMAND} + -DPREFIX=${DEPS_BUILD_DIR} + -DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/${NAME} + -DURL=${TS_URL} + -DEXPECTED_SHA256=${TS_SHA256} + -DTARGET=${NAME} + -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR} + -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake + PATCH_COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_CURRENT_SOURCE_DIR}/cmake/${TS_CMAKE_FILE} + ${DEPS_BUILD_DIR}/src/${NAME}/CMakeLists.txt + CMAKE_ARGS + -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} + -DCMAKE_GENERATOR=${CMAKE_GENERATOR} + ${BUILD_TYPE_STRING} + -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} + # Pass toolchain + -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} + -DPARSERLANG=${LANG}) +endfunction() -BUILD_COMMAND ${CMAKE_COMMAND} --build . --config ${CMAKE_BUILD_TYPE} -INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config ${CMAKE_BUILD_TYPE} -LIST_SEPARATOR |) +BuildTSParser(c ${TREESITTER_C_URL} ${TREESITTER_C_SHA256} TreesitterParserCMakeLists.txt) +BuildTSParser(lua ${TREESITTER_LUA_URL} ${TREESITTER_LUA_SHA256} TreesitterParserCMakeLists.txt) diff --git a/cmake.deps/cmake/TreesitterParserCMakeLists.txt b/cmake.deps/cmake/TreesitterParserCMakeLists.txt index 54bc35fb8a..9ec7a23864 100644 --- a/cmake.deps/cmake/TreesitterParserCMakeLists.txt +++ b/cmake.deps/cmake/TreesitterParserCMakeLists.txt @@ -1,10 +1,11 @@ cmake_minimum_required(VERSION 3.10) -# some parsers have c++ scanner, problem? -project(parser C) # CXX +project(parser C) + +file(GLOB source_files src/*.c) add_library(parser MODULE - src/parser.c + ${source_files} ) set_target_properties( parser -- cgit From e85b8aa7681a1870244795cccfbb74b589996eff Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Sun, 4 Sep 2022 16:27:57 +0200 Subject: feat(treesitter): add viml parser and queries --- cmake.deps/cmake/BuildTreesitterParsers.cmake | 1 + 1 file changed, 1 insertion(+) (limited to 'cmake.deps/cmake') diff --git a/cmake.deps/cmake/BuildTreesitterParsers.cmake b/cmake.deps/cmake/BuildTreesitterParsers.cmake index c8f5815cd2..6267a1387c 100644 --- a/cmake.deps/cmake/BuildTreesitterParsers.cmake +++ b/cmake.deps/cmake/BuildTreesitterParsers.cmake @@ -27,3 +27,4 @@ endfunction() BuildTSParser(c ${TREESITTER_C_URL} ${TREESITTER_C_SHA256} TreesitterParserCMakeLists.txt) BuildTSParser(lua ${TREESITTER_LUA_URL} ${TREESITTER_LUA_SHA256} TreesitterParserCMakeLists.txt) +BuildTSParser(vim ${TREESITTER_VIM_URL} ${TREESITTER_VIM_SHA256} TreesitterParserCMakeLists.txt) -- cgit From 97f38f0a9bbae4969f672746a62caa6cba136b45 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Sun, 4 Sep 2022 17:58:33 +0200 Subject: fix(treesitter): do not link @error by default The @error capture is used for tree-sitter's ERROR node, which indicates a parsing error -- which can be quite frequent (and jarring) while typing. Users can still manually `hi link @error Error` in their config. --- cmake.deps/cmake/BuildTreesitterParsers.cmake | 5 ----- 1 file changed, 5 deletions(-) (limited to 'cmake.deps/cmake') diff --git a/cmake.deps/cmake/BuildTreesitterParsers.cmake b/cmake.deps/cmake/BuildTreesitterParsers.cmake index 6267a1387c..dd3f4eb308 100644 --- a/cmake.deps/cmake/BuildTreesitterParsers.cmake +++ b/cmake.deps/cmake/BuildTreesitterParsers.cmake @@ -16,12 +16,7 @@ function(BuildTSParser LANG TS_URL TS_SHA256 TS_CMAKE_FILE) ${CMAKE_CURRENT_SOURCE_DIR}/cmake/${TS_CMAKE_FILE} ${DEPS_BUILD_DIR}/src/${NAME}/CMakeLists.txt CMAKE_ARGS - -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} - -DCMAKE_GENERATOR=${CMAKE_GENERATOR} - ${BUILD_TYPE_STRING} -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} - # Pass toolchain - -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} -DPARSERLANG=${LANG}) endfunction() -- cgit From 6e3a69b4cf5c526443b96cf857847d6c3b0586d8 Mon Sep 17 00:00:00 2001 From: dundargoc <33953936+dundargoc@users.noreply.github.com> Date: Tue, 6 Sep 2022 16:52:39 +0200 Subject: build: consistently set build type regardless of generator or platform #19760 Change the default build type to always be Debug, and allow only four predefined build types: Debug, Release, RelWithDebInfo and MinRelSize. Furthermore, flags meant for single-configuration generator (make, ninja) will not be used for multi-configuration generators (visual studio, Xcode), and flags meant for multi-configuration generators will not be used for single-configuration generators. This will allow Debug builds to be built with MSVC which requires that all dependencies are also built with the Debug build type to avoid runtime library mismatch. The correct way to specify build type (for example Release) for single-configuration generators (Make and Ninja) is to run cmake -B build -D CMAKE_BUILD_TYPE=Release cmake --build build while for multi-configuration generators (Visual Studio, Xcode and Ninja Multi-Config) is to run cmake -B build cmake --build build --config Release Passing CMAKE_BUILD_TYPE for multi-config generators will now not only not be used, but also generate a warning for the user. Co-authored-by: dundargoc --- cmake.deps/cmake/BuildGettext.cmake | 4 ++-- cmake.deps/cmake/BuildLibiconv.cmake | 4 ++-- cmake.deps/cmake/BuildLibtermkey.cmake | 4 ++-- cmake.deps/cmake/BuildLibvterm.cmake | 5 ++--- cmake.deps/cmake/BuildLuv.cmake | 6 ++---- cmake.deps/cmake/BuildMsgpack.cmake | 4 ++-- cmake.deps/cmake/BuildTreesitter.cmake | 4 ++-- cmake.deps/cmake/BuildUnibilium.cmake | 4 ++-- 8 files changed, 16 insertions(+), 19 deletions(-) (limited to 'cmake.deps/cmake') diff --git a/cmake.deps/cmake/BuildGettext.cmake b/cmake.deps/cmake/BuildGettext.cmake index f36c00c559..d903fbc737 100644 --- a/cmake.deps/cmake/BuildGettext.cmake +++ b/cmake.deps/cmake/BuildGettext.cmake @@ -23,8 +23,8 @@ if(MSVC) -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} -DLIBICONV_INCLUDE_DIRS=${DEPS_INSTALL_DIR}/include -DLIBICONV_LIBRARIES=${DEPS_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}libcharset${CMAKE_STATIC_LIBRARY_SUFFIX}$${DEPS_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}libiconv${CMAKE_STATIC_LIBRARY_SUFFIX} - BUILD_COMMAND ${CMAKE_COMMAND} --build . --config ${CMAKE_BUILD_TYPE} - INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config ${CMAKE_BUILD_TYPE}) + BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $ + INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config $) else() message(FATAL_ERROR "Trying to build gettext in an unsupported system ${CMAKE_SYSTEM_NAME}/${CMAKE_C_COMPILER_ID}") endif() diff --git a/cmake.deps/cmake/BuildLibiconv.cmake b/cmake.deps/cmake/BuildLibiconv.cmake index 434bfd6979..29168340a1 100644 --- a/cmake.deps/cmake/BuildLibiconv.cmake +++ b/cmake.deps/cmake/BuildLibiconv.cmake @@ -21,8 +21,8 @@ if(MSVC) ${BUILD_TYPE_STRING} -DCMAKE_GENERATOR=${CMAKE_GENERATOR} -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} - BUILD_COMMAND ${CMAKE_COMMAND} --build . --config ${CMAKE_BUILD_TYPE} - INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config ${CMAKE_BUILD_TYPE}) + BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $ + INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config $) else() message(FATAL_ERROR "Trying to build libiconv in an unsupported system ${CMAKE_SYSTEM_NAME}/${CMAKE_C_COMPILER_ID}") endif() diff --git a/cmake.deps/cmake/BuildLibtermkey.cmake b/cmake.deps/cmake/BuildLibtermkey.cmake index 66bac57d23..7aa0b3e8c6 100644 --- a/cmake.deps/cmake/BuildLibtermkey.cmake +++ b/cmake.deps/cmake/BuildLibtermkey.cmake @@ -25,8 +25,8 @@ ExternalProject_Add(libtermkey -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} -DUNIBILIUM_INCLUDE_DIRS=${DEPS_INSTALL_DIR}/include -DUNIBILIUM_LIBRARIES=${DEPS_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}unibilium${CMAKE_STATIC_LIBRARY_SUFFIX} - BUILD_COMMAND ${CMAKE_COMMAND} --build . --config ${CMAKE_BUILD_TYPE} - INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config ${CMAKE_BUILD_TYPE}) + BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $ + INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config $) else() find_package(PkgConfig REQUIRED) diff --git a/cmake.deps/cmake/BuildLibvterm.cmake b/cmake.deps/cmake/BuildLibvterm.cmake index a905733abc..1f7088cdb7 100644 --- a/cmake.deps/cmake/BuildLibvterm.cmake +++ b/cmake.deps/cmake/BuildLibvterm.cmake @@ -49,14 +49,13 @@ if(WIN32) -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} -DCMAKE_GENERATOR=${CMAKE_GENERATOR}) - if(MSVC) list(APPEND LIBVTERM_CONFIGURE_COMMAND "-DCMAKE_C_FLAGS:STRING=${CMAKE_C_COMPILER_ARG1}") else() list(APPEND LIBVTERM_CONFIGURE_COMMAND "-DCMAKE_C_FLAGS:STRING=${CMAKE_C_COMPILER_ARG1} -fPIC") endif() - set(LIBVTERM_BUILD_COMMAND ${CMAKE_COMMAND} --build . --config ${CMAKE_BUILD_TYPE}) - set(LIBVTERM_INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config ${CMAKE_BUILD_TYPE}) + set(LIBVTERM_BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $) + set(LIBVTERM_INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config $) else() set(LIBVTERM_INSTALL_COMMAND ${MAKE_PRG} CC=${DEPS_C_COMPILER} PREFIX=${DEPS_INSTALL_DIR} diff --git a/cmake.deps/cmake/BuildLuv.cmake b/cmake.deps/cmake/BuildLuv.cmake index f960b24992..9e890642a6 100644 --- a/cmake.deps/cmake/BuildLuv.cmake +++ b/cmake.deps/cmake/BuildLuv.cmake @@ -110,10 +110,8 @@ else() endif() endif() -set(LUV_BUILD_COMMAND - ${CMAKE_COMMAND} --build . --config ${CMAKE_BUILD_TYPE}) -set(LUV_INSTALL_COMMAND - ${CMAKE_COMMAND} --build . --target install --config ${CMAKE_BUILD_TYPE}) +set(LUV_BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $) +set(LUV_INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config $) BuildLuv(PATCH_COMMAND ${LUV_PATCH_COMMAND} CONFIGURE_COMMAND ${LUV_CONFIGURE_COMMAND} diff --git a/cmake.deps/cmake/BuildMsgpack.cmake b/cmake.deps/cmake/BuildMsgpack.cmake index ea3fa84d7b..1ef00ba3ad 100644 --- a/cmake.deps/cmake/BuildMsgpack.cmake +++ b/cmake.deps/cmake/BuildMsgpack.cmake @@ -40,8 +40,8 @@ set(MSGPACK_CONFIGURE_COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/msgpack "-DCMAKE_C_FLAGS:STRING=${CMAKE_C_COMPILER_ARG1} -fPIC" -DCMAKE_GENERATOR=${CMAKE_GENERATOR}) -set(MSGPACK_BUILD_COMMAND ${CMAKE_COMMAND} --build . --config ${CMAKE_BUILD_TYPE}) -set(MSGPACK_INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config ${CMAKE_BUILD_TYPE}) +set(MSGPACK_BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $) +set(MSGPACK_INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config $) if(MSVC) # Same as Unix without fPIC diff --git a/cmake.deps/cmake/BuildTreesitter.cmake b/cmake.deps/cmake/BuildTreesitter.cmake index 6d98f6179c..85dd9ab225 100644 --- a/cmake.deps/cmake/BuildTreesitter.cmake +++ b/cmake.deps/cmake/BuildTreesitter.cmake @@ -45,8 +45,8 @@ if(MSVC) -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} ${BUILD_TYPE_STRING} -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} - BUILD_COMMAND ${CMAKE_COMMAND} --build . --config ${CMAKE_BUILD_TYPE} - INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config ${CMAKE_BUILD_TYPE} + BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $ + INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config $ ) else() set(TS_CFLAGS "-O3 -Wall -Wextra") diff --git a/cmake.deps/cmake/BuildUnibilium.cmake b/cmake.deps/cmake/BuildUnibilium.cmake index fd5d68f9a8..44bd816550 100644 --- a/cmake.deps/cmake/BuildUnibilium.cmake +++ b/cmake.deps/cmake/BuildUnibilium.cmake @@ -21,8 +21,8 @@ if(WIN32) -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} ${BUILD_TYPE_STRING} -DCMAKE_GENERATOR=${CMAKE_GENERATOR} - BUILD_COMMAND ${CMAKE_COMMAND} --build . --config ${CMAKE_BUILD_TYPE} - INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config ${CMAKE_BUILD_TYPE}) + BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $ + INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config $) else() ExternalProject_Add(unibilium PREFIX ${DEPS_BUILD_DIR} -- cgit From 9ecaa35f5541029f698cf93e4832b4b179074ab5 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Tue, 8 Feb 2022 09:09:30 +0100 Subject: build(deps): use libvterm 0.3-rc1 --- cmake.deps/cmake/BuildLibvterm.cmake | 6 ------ 1 file changed, 6 deletions(-) (limited to 'cmake.deps/cmake') diff --git a/cmake.deps/cmake/BuildLibvterm.cmake b/cmake.deps/cmake/BuildLibvterm.cmake index a905733abc..9c6a6c2888 100644 --- a/cmake.deps/cmake/BuildLibvterm.cmake +++ b/cmake.deps/cmake/BuildLibvterm.cmake @@ -32,12 +32,6 @@ function(BuildLibvterm) endfunction() if(WIN32) - if(MSVC) - set(LIBVTERM_PATCH_COMMAND - ${GIT_EXECUTABLE} -C ${DEPS_BUILD_DIR}/src/libvterm init - COMMAND ${GIT_EXECUTABLE} -C ${DEPS_BUILD_DIR}/src/libvterm apply --ignore-whitespace - ${CMAKE_CURRENT_SOURCE_DIR}/patches/libvterm-Remove-VLAs-for-MSVC.patch) - endif() set(LIBVTERM_CONFIGURE_COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/cmake/LibvtermCMakeLists.txt ${DEPS_BUILD_DIR}/src/libvterm/CMakeLists.txt -- cgit From c77bb5a528e8c7811e0b7ffd875b3c0fd90901bc Mon Sep 17 00:00:00 2001 From: Eisuke Kawashima Date: Wed, 7 Sep 2022 06:31:44 +0900 Subject: build(treesitter): set CMAKE_C_STANDARD to C99 --- cmake.deps/cmake/TreesitterParserCMakeLists.txt | 1 + 1 file changed, 1 insertion(+) (limited to 'cmake.deps/cmake') diff --git a/cmake.deps/cmake/TreesitterParserCMakeLists.txt b/cmake.deps/cmake/TreesitterParserCMakeLists.txt index 9ec7a23864..be07f00a37 100644 --- a/cmake.deps/cmake/TreesitterParserCMakeLists.txt +++ b/cmake.deps/cmake/TreesitterParserCMakeLists.txt @@ -1,6 +1,7 @@ cmake_minimum_required(VERSION 3.10) project(parser C) +set(CMAKE_C_STANDARD 99) file(GLOB source_files src/*.c) add_library(parser -- cgit From b635f7ed413256a47cf20b6d8b4a077f77095ae4 Mon Sep 17 00:00:00 2001 From: dundargoc Date: Sat, 6 Aug 2022 18:26:43 +0200 Subject: build: remove ARGS from add_custom_command It's a command that doesn't do anything, kept only for compatibility reasons. --- cmake.deps/cmake/BuildLuarocks.cmake | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) (limited to 'cmake.deps/cmake') diff --git a/cmake.deps/cmake/BuildLuarocks.cmake b/cmake.deps/cmake/BuildLuarocks.cmake index 73f3331176..cc5aac74dd 100644 --- a/cmake.deps/cmake/BuildLuarocks.cmake +++ b/cmake.deps/cmake/BuildLuarocks.cmake @@ -130,16 +130,14 @@ set(ROCKS_DIR ${HOSTDEPS_LIB_DIR}/luarocks/rocks-${LUA_VERSION}) # mpack add_custom_command(OUTPUT ${ROCKS_DIR}/mpack - COMMAND ${LUAROCKS_BINARY} - ARGS build mpack 1.0.8-0 ${LUAROCKS_BUILDARGS} + 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) # lpeg add_custom_command(OUTPUT ${ROCKS_DIR}/lpeg - COMMAND ${LUAROCKS_BINARY} - ARGS build lpeg 1.0.2-1 ${LUAROCKS_BUILDARGS} + 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) @@ -147,8 +145,7 @@ list(APPEND THIRD_PARTY_DEPS lpeg) if((NOT USE_BUNDLED_LUAJIT) AND USE_BUNDLED_LUA) # luabitop add_custom_command(OUTPUT ${ROCKS_DIR}/luabitop - COMMAND ${LUAROCKS_BINARY} - ARGS build luabitop 1.0.2-3 ${LUAROCKS_BUILDARGS} + 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) @@ -163,8 +160,7 @@ if(USE_BUNDLED_BUSTED) # penlight add_custom_command(OUTPUT ${ROCKS_DIR}/penlight - COMMAND ${LUAROCKS_BINARY} - ARGS build penlight 1.5.4-1 ${LUAROCKS_BUILDARGS} + COMMAND ${LUAROCKS_BINARY} build penlight 1.5.4-1 ${LUAROCKS_BUILDARGS} DEPENDS ${PENLIGHT_DEPENDS}) add_custom_target(penlight DEPENDS ${ROCKS_DIR}/penlight) @@ -177,15 +173,13 @@ if(USE_BUNDLED_BUSTED) set(LUACHECK_EXE "${HOSTDEPS_BIN_DIR}/luacheck") endif() add_custom_command(OUTPUT ${BUSTED_EXE} - COMMAND ${LUAROCKS_BINARY} - ARGS build busted 2.0.0 ${LUAROCKS_BUILDARGS} + COMMAND ${LUAROCKS_BINARY} build busted 2.0.0 ${LUAROCKS_BUILDARGS} DEPENDS penlight) add_custom_target(busted DEPENDS ${BUSTED_EXE}) # luacheck add_custom_command(OUTPUT ${LUACHECK_EXE} - COMMAND ${LUAROCKS_BINARY} - ARGS build luacheck 0.23.0-1 ${LUAROCKS_BUILDARGS} + COMMAND ${LUAROCKS_BINARY} build luacheck 0.23.0-1 ${LUAROCKS_BUILDARGS} DEPENDS busted) add_custom_target(luacheck DEPENDS ${LUACHECK_EXE}) @@ -195,8 +189,7 @@ if(USE_BUNDLED_BUSTED) set(NVIM_CLIENT_DEPS luacheck luv-static lua-compat-5.3) else() add_custom_command(OUTPUT ${ROCKS_DIR}/luv - COMMAND ${LUAROCKS_BINARY} - ARGS build luv ${LUV_VERSION} ${LUAROCKS_BUILDARGS} + COMMAND ${LUAROCKS_BINARY} build luv ${LUV_VERSION} ${LUAROCKS_BUILDARGS} DEPENDS luacheck) add_custom_target(luv DEPENDS ${ROCKS_DIR}/luv) set(NVIM_CLIENT_DEPS luv) @@ -204,8 +197,7 @@ if(USE_BUNDLED_BUSTED) # nvim-client: https://github.com/neovim/lua-client add_custom_command(OUTPUT ${ROCKS_DIR}/nvim-client - COMMAND ${LUAROCKS_BINARY} - ARGS build nvim-client 0.2.4-1 ${LUAROCKS_BUILDARGS} + COMMAND ${LUAROCKS_BINARY} build nvim-client 0.2.4-1 ${LUAROCKS_BUILDARGS} DEPENDS ${NVIM_CLIENT_DEPS}) add_custom_target(nvim-client DEPENDS ${ROCKS_DIR}/nvim-client) -- cgit From 7ae74998f0c272f9bc242f9195e376ee049d21da Mon Sep 17 00:00:00 2001 From: dundargoc Date: Mon, 29 Aug 2022 16:57:46 +0200 Subject: build: remove unnecessary build functions These functions serve no purpose if they're only used as intermediary functions that passes on arguments to ExternalProject_Add. --- cmake.deps/cmake/BuildLibtermkey.cmake | 58 ++++++++------------- cmake.deps/cmake/BuildLibvterm.cmake | 53 ++++++------------- cmake.deps/cmake/BuildLua.cmake | 57 ++++++--------------- cmake.deps/cmake/BuildLuarocks.cmake | 59 ++++++++------------- cmake.deps/cmake/BuildLuv.cmake | 94 ++++++++++++---------------------- cmake.deps/cmake/BuildMsgpack.cmake | 55 ++++++-------------- cmake.deps/cmake/BuildTreesitter.cmake | 71 +++++++++---------------- cmake.deps/cmake/BuildUnibilium.cmake | 71 +++++++++++-------------- 8 files changed, 181 insertions(+), 337 deletions(-) (limited to 'cmake.deps/cmake') diff --git a/cmake.deps/cmake/BuildLibtermkey.cmake b/cmake.deps/cmake/BuildLibtermkey.cmake index 7aa0b3e8c6..ee35112823 100644 --- a/cmake.deps/cmake/BuildLibtermkey.cmake +++ b/cmake.deps/cmake/BuildLibtermkey.cmake @@ -1,18 +1,6 @@ if(WIN32) -ExternalProject_Add(libtermkey - PREFIX ${DEPS_BUILD_DIR} - URL ${LIBTERMKEY_URL} - DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/libtermkey - DOWNLOAD_COMMAND ${CMAKE_COMMAND} - -DPREFIX=${DEPS_BUILD_DIR} - -DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/libtermkey - -DURL=${LIBTERMKEY_URL} - -DEXPECTED_SHA256=${LIBTERMKEY_SHA256} - -DTARGET=libtermkey - -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR} - -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake - CONFIGURE_COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_CURRENT_SOURCE_DIR}/cmake/libtermkeyCMakeLists.txt + set(LIBTERMKEY_CONFIGURE_COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_CURRENT_SOURCE_DIR}/cmake/libtermkeyCMakeLists.txt ${DEPS_BUILD_DIR}/src/libtermkey/CMakeLists.txt COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/libtermkey -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} @@ -24,34 +12,32 @@ ExternalProject_Add(libtermkey -DCMAKE_GENERATOR=${CMAKE_GENERATOR} -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} -DUNIBILIUM_INCLUDE_DIRS=${DEPS_INSTALL_DIR}/include - -DUNIBILIUM_LIBRARIES=${DEPS_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}unibilium${CMAKE_STATIC_LIBRARY_SUFFIX} - BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $ - INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config $) + -DUNIBILIUM_LIBRARIES=${DEPS_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}unibilium${CMAKE_STATIC_LIBRARY_SUFFIX}) + set(LIBTERMKEY_BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $) + set(LIBTERMKEY_INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config $) else() -find_package(PkgConfig REQUIRED) + find_package(PkgConfig REQUIRED) + + set(LIBTERMKEY_BUILD_COMMAND "" BUILD_IN_SOURCE 1) + set(LIBTERMKEY_INSTALL_COMMAND ${MAKE_PRG} CC=${DEPS_C_COMPILER} + PREFIX=${DEPS_INSTALL_DIR} PKG_CONFIG_PATH=${DEPS_LIB_DIR}/pkgconfig + CFLAGS=-fPIC LDFLAGS+=-static ${DEFAULT_MAKE_CFLAGS} install) +endif() ExternalProject_Add(libtermkey PREFIX ${DEPS_BUILD_DIR} URL ${LIBTERMKEY_URL} DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/libtermkey DOWNLOAD_COMMAND ${CMAKE_COMMAND} - -DPREFIX=${DEPS_BUILD_DIR} - -DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/libtermkey - -DURL=${LIBTERMKEY_URL} - -DEXPECTED_SHA256=${LIBTERMKEY_SHA256} - -DTARGET=libtermkey - -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR} - -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake - CONFIGURE_COMMAND "" - BUILD_IN_SOURCE 1 - BUILD_COMMAND "" - INSTALL_COMMAND ${MAKE_PRG} CC=${DEPS_C_COMPILER} - PREFIX=${DEPS_INSTALL_DIR} - PKG_CONFIG_PATH=${DEPS_LIB_DIR}/pkgconfig - CFLAGS=-fPIC - LDFLAGS+=-static - ${DEFAULT_MAKE_CFLAGS} - install) -endif() + -DPREFIX=${DEPS_BUILD_DIR} + -DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/libtermkey + -DURL=${LIBTERMKEY_URL} + -DEXPECTED_SHA256=${LIBTERMKEY_SHA256} + -DTARGET=libtermkey + -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR} + -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake + CONFIGURE_COMMAND "${LIBTERMKEY_CONFIGURE_COMMAND}" + BUILD_COMMAND "${LIBTERMKEY_BUILD_COMMAND}" + INSTALL_COMMAND "${LIBTERMKEY_INSTALL_COMMAND}") list(APPEND THIRD_PARTY_DEPS libtermkey) diff --git a/cmake.deps/cmake/BuildLibvterm.cmake b/cmake.deps/cmake/BuildLibvterm.cmake index 10ddbb47ba..8ab81e9bbe 100644 --- a/cmake.deps/cmake/BuildLibvterm.cmake +++ b/cmake.deps/cmake/BuildLibvterm.cmake @@ -1,36 +1,3 @@ -# BuildLibvterm(CONFIGURE_COMMAND ... BUILD_COMMAND ... INSTALL_COMMAND ...) -# Failing to pass a command argument will result in no command being run -function(BuildLibvterm) - cmake_parse_arguments(_libvterm - "" - "" - "PATCH_COMMAND;CONFIGURE_COMMAND;BUILD_COMMAND;INSTALL_COMMAND" - ${ARGN}) - - if(NOT _libvterm_CONFIGURE_COMMAND AND NOT _libvterm_BUILD_COMMAND - AND NOT _libvterm_INSTALL_COMMAND) - message(FATAL_ERROR "Must pass at least one of CONFIGURE_COMMAND, BUILD_COMMAND, INSTALL_COMMAND") - endif() - - ExternalProject_Add(libvterm - PREFIX ${DEPS_BUILD_DIR} - URL ${LIBVTERM_URL} - DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/libvterm - DOWNLOAD_COMMAND ${CMAKE_COMMAND} - -DPREFIX=${DEPS_BUILD_DIR} - -DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/libvterm - -DURL=${LIBVTERM_URL} - -DEXPECTED_SHA256=${LIBVTERM_SHA256} - -DTARGET=libvterm - -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR} - -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake - PATCH_COMMAND "${_libvterm_PATCH_COMMAND}" - BUILD_IN_SOURCE 1 - CONFIGURE_COMMAND "${_libvterm_CONFIGURE_COMMAND}" - BUILD_COMMAND "${_libvterm_BUILD_COMMAND}" - INSTALL_COMMAND "${_libvterm_INSTALL_COMMAND}") -endfunction() - if(WIN32) set(LIBVTERM_CONFIGURE_COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/cmake/LibvtermCMakeLists.txt @@ -59,9 +26,21 @@ else() install) endif() -BuildLibvterm(PATCH_COMMAND ${LIBVTERM_PATCH_COMMAND} - CONFIGURE_COMMAND ${LIBVTERM_CONFIGURE_COMMAND} - BUILD_COMMAND ${LIBVTERM_BUILD_COMMAND} - INSTALL_COMMAND ${LIBVTERM_INSTALL_COMMAND}) +ExternalProject_Add(libvterm + PREFIX ${DEPS_BUILD_DIR} + URL ${LIBVTERM_URL} + DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/libvterm + DOWNLOAD_COMMAND ${CMAKE_COMMAND} + -DPREFIX=${DEPS_BUILD_DIR} + -DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/libvterm + -DURL=${LIBVTERM_URL} + -DEXPECTED_SHA256=${LIBVTERM_SHA256} + -DTARGET=libvterm + -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR} + -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake + BUILD_IN_SOURCE 1 + CONFIGURE_COMMAND "${LIBVTERM_CONFIGURE_COMMAND}" + BUILD_COMMAND "${LIBVTERM_BUILD_COMMAND}" + INSTALL_COMMAND "${LIBVTERM_INSTALL_COMMAND}") list(APPEND THIRD_PARTY_DEPS libvterm) diff --git a/cmake.deps/cmake/BuildLua.cmake b/cmake.deps/cmake/BuildLua.cmake index a40cb7dcb2..58131a4ba7 100644 --- a/cmake.deps/cmake/BuildLua.cmake +++ b/cmake.deps/cmake/BuildLua.cmake @@ -1,36 +1,3 @@ -# BuildLua(CONFIGURE_COMMAND ... BUILD_COMMAND ... INSTALL_COMMAND ...) -# Reusable function to build lua, wraps ExternalProject_Add. -# Failing to pass a command argument will result in no command being run -function(BuildLua) - cmake_parse_arguments(_lua - "" - "" - "CONFIGURE_COMMAND;BUILD_COMMAND;INSTALL_COMMAND" - ${ARGN}) - - if(NOT _lua_CONFIGURE_COMMAND AND NOT _lua_BUILD_COMMAND - AND NOT _lua_INSTALL_COMMAND) - message(FATAL_ERROR "Must pass at least one of CONFIGURE_COMMAND, BUILD_COMMAND, INSTALL_COMMAND") - endif() - - ExternalProject_Add(lua - PREFIX ${DEPS_BUILD_DIR} - URL ${LUA_URL} - DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/lua - DOWNLOAD_COMMAND ${CMAKE_COMMAND} - -DPREFIX=${DEPS_BUILD_DIR} - -DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/lua - -DURL=${LUA_URL} - -DEXPECTED_SHA256=${LUA_SHA256} - -DTARGET=lua - -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR} - -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake - CONFIGURE_COMMAND "${_lua_CONFIGURE_COMMAND}" - BUILD_IN_SOURCE 1 - BUILD_COMMAND "${_lua_BUILD_COMMAND}" - INSTALL_COMMAND "${_lua_INSTALL_COMMAND}") -endfunction() - if(CMAKE_SYSTEM_NAME STREQUAL "Linux") set(LUA_TARGET linux) elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") @@ -72,16 +39,26 @@ set(LUA_CONFIGURE_COMMAND -e "s@\\(#define LUA_ROOT[ ]*\"\\)/usr/local@\\1${DEPS_INSTALL_DIR}@" -i ${DEPS_BUILD_DIR}/src/lua/src/luaconf.h) set(LUA_INSTALL_TOP_ARG "INSTALL_TOP=${DEPS_INSTALL_DIR}") -set(LUA_BUILD_COMMAND - ${MAKE_PRG} ${LUA_INSTALL_TOP_ARG} ${LUA_TARGET}) -set(LUA_INSTALL_COMMAND - ${MAKE_PRG} ${LUA_INSTALL_TOP_ARG} install) message(STATUS "Lua target is ${LUA_TARGET}") -BuildLua(CONFIGURE_COMMAND ${LUA_CONFIGURE_COMMAND} - BUILD_COMMAND ${LUA_BUILD_COMMAND} - INSTALL_COMMAND ${LUA_INSTALL_COMMAND}) +ExternalProject_Add(lua + PREFIX ${DEPS_BUILD_DIR} + URL ${LUA_URL} + DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/lua + DOWNLOAD_COMMAND ${CMAKE_COMMAND} + -DPREFIX=${DEPS_BUILD_DIR} + -DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/lua + -DURL=${LUA_URL} + -DEXPECTED_SHA256=${LUA_SHA256} + -DTARGET=lua + -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR} + -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake + CONFIGURE_COMMAND "${LUA_CONFIGURE_COMMAND}" + BUILD_IN_SOURCE 1 + 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) diff --git a/cmake.deps/cmake/BuildLuarocks.cmake b/cmake.deps/cmake/BuildLuarocks.cmake index cc5aac74dd..838653e7cb 100644 --- a/cmake.deps/cmake/BuildLuarocks.cmake +++ b/cmake.deps/cmake/BuildLuarocks.cmake @@ -9,39 +9,6 @@ option(USE_BUNDLED_BUSTED "Use the bundled version of busted to run tests." ON) -# BuildLuarocks(CONFIGURE_COMMAND ... BUILD_COMMAND ... INSTALL_COMMAND ...) -# Reusable function to build luarocks, wraps ExternalProject_Add. -# Failing to pass a command argument will result in no command being run -function(BuildLuarocks) - cmake_parse_arguments(_luarocks - "" - "" - "CONFIGURE_COMMAND;BUILD_COMMAND;INSTALL_COMMAND" - ${ARGN}) - - if(NOT _luarocks_CONFIGURE_COMMAND AND NOT _luarocks_BUILD_COMMAND - AND NOT _luarocks_INSTALL_COMMAND) - message(FATAL_ERROR "Must pass at least one of CONFIGURE_COMMAND, BUILD_COMMAND, INSTALL_COMMAND") - endif() - - ExternalProject_Add(luarocks - PREFIX ${DEPS_BUILD_DIR} - URL ${LUAROCKS_URL} - DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/luarocks - DOWNLOAD_COMMAND ${CMAKE_COMMAND} - -DPREFIX=${DEPS_BUILD_DIR} - -DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/luarocks - -DURL=${LUAROCKS_URL} - -DEXPECTED_SHA256=${LUAROCKS_SHA256} - -DTARGET=luarocks - -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR} - -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake - BUILD_IN_SOURCE 1 - CONFIGURE_COMMAND "${_luarocks_CONFIGURE_COMMAND}" - BUILD_COMMAND "${_luarocks_BUILD_COMMAND}" - INSTALL_COMMAND "${_luarocks_INSTALL_COMMAND}") -endfunction() - # The luarocks binary location set(LUAROCKS_BINARY ${HOSTDEPS_BIN_DIR}/luarocks) @@ -90,10 +57,9 @@ if(UNIX) endif() endif() - BuildLuarocks( - CONFIGURE_COMMAND ${DEPS_BUILD_DIR}/src/luarocks/configure - --prefix=${HOSTDEPS_INSTALL_DIR} --force-config ${LUAROCKS_OPTS} - INSTALL_COMMAND ${MAKE_PRG} -j1 bootstrap) + set(LUAROCKS_CONFIGURE_COMMAND ${DEPS_BUILD_DIR}/src/luarocks/configure + --prefix=${HOSTDEPS_INSTALL_DIR} --force-config ${LUAROCKS_OPTS}) + set(LUAROCKS_INSTALL_COMMAND ${MAKE_PRG} -j1 bootstrap) elseif(MSVC OR MINGW) if(MINGW) @@ -103,7 +69,7 @@ elseif(MSVC OR MINGW) endif() # Ignore USE_BUNDLED_LUAJIT - always ON for native Win32 - BuildLuarocks(INSTALL_COMMAND install.bat /FORCECONFIG /NOREG /NOADMIN /Q /F + set(LUAROCKS_INSTALL_COMMAND install.bat /FORCECONFIG /NOREG /NOADMIN /Q /F /LUA ${DEPS_INSTALL_DIR} /LIB ${DEPS_LIB_DIR} /BIN ${DEPS_BIN_DIR} @@ -119,6 +85,23 @@ else() message(FATAL_ERROR "Trying to build luarocks in an unsupported system ${CMAKE_SYSTEM_NAME}/${CMAKE_C_COMPILER_ID}") endif() +ExternalProject_Add(luarocks + PREFIX ${DEPS_BUILD_DIR} + URL ${LUAROCKS_URL} + DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/luarocks + DOWNLOAD_COMMAND ${CMAKE_COMMAND} + -DPREFIX=${DEPS_BUILD_DIR} + -DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/luarocks + -DURL=${LUAROCKS_URL} + -DEXPECTED_SHA256=${LUAROCKS_SHA256} + -DTARGET=luarocks + -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR} + -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake + BUILD_IN_SOURCE 1 + CONFIGURE_COMMAND "${LUAROCKS_CONFIGURE_COMMAND}" + BUILD_COMMAND "" + INSTALL_COMMAND "${LUAROCKS_INSTALL_COMMAND}") + list(APPEND THIRD_PARTY_DEPS luarocks) if(USE_BUNDLED_LUAJIT) diff --git a/cmake.deps/cmake/BuildLuv.cmake b/cmake.deps/cmake/BuildLuv.cmake index 9e890642a6..9aafd9239a 100644 --- a/cmake.deps/cmake/BuildLuv.cmake +++ b/cmake.deps/cmake/BuildLuv.cmake @@ -1,57 +1,3 @@ -# BuildLuv(PATCH_COMMAND ... CONFIGURE_COMMAND ... BUILD_COMMAND ... INSTALL_COMMAND ...) -# Reusable function to build luv, wraps ExternalProject_Add. -# Failing to pass a command argument will result in no command being run -function(BuildLuv) - cmake_parse_arguments(_luv - "" - "" - "PATCH_COMMAND;CONFIGURE_COMMAND;BUILD_COMMAND;INSTALL_COMMAND" - ${ARGN}) - - if(NOT _luv_CONFIGURE_COMMAND AND NOT _luv_BUILD_COMMAND - AND NOT _luv_INSTALL_COMMAND) - message(FATAL_ERROR "Must pass at least one of CONFIGURE_COMMAND, BUILD_COMMAND, INSTALL_COMMAND") - endif() - - ExternalProject_Add(lua-compat-5.3 - PREFIX ${DEPS_BUILD_DIR} - URL ${LUA_COMPAT53_URL} - DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/lua-compat-5.3 - DOWNLOAD_COMMAND ${CMAKE_COMMAND} - -DPREFIX=${DEPS_BUILD_DIR} - -DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/lua-compat-5.3 - -DURL=${LUA_COMPAT53_URL} - -DEXPECTED_SHA256=${LUA_COMPAT53_SHA256} - -DTARGET=lua-compat-5.3 - -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR} - -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake - PATCH_COMMAND "" - CONFIGURE_COMMAND "" - BUILD_COMMAND "" - INSTALL_COMMAND "") - - ExternalProject_Add(luv-static - PREFIX ${DEPS_BUILD_DIR} - DEPENDS lua-compat-5.3 - URL ${LUV_URL} - DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/luv - DOWNLOAD_COMMAND ${CMAKE_COMMAND} - -DPREFIX=${DEPS_BUILD_DIR} - -DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/luv - -DURL=${LUV_URL} - -DEXPECTED_SHA256=${LUV_SHA256} - -DTARGET=luv-static - # The source is shared with BuildLuarocks (with USE_BUNDLED_LUV). - -DSRC_DIR=${DEPS_BUILD_DIR}/src/luv - -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR} - -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake - PATCH_COMMAND "${_luv_PATCH_COMMAND}" - CONFIGURE_COMMAND "${_luv_CONFIGURE_COMMAND}" - BUILD_COMMAND "${_luv_BUILD_COMMAND}" - INSTALL_COMMAND "${_luv_INSTALL_COMMAND}" - LIST_SEPARATOR |) -endfunction() - set(LUV_SRC_DIR ${DEPS_BUILD_DIR}/src/luv) set(LUV_INCLUDE_FLAGS "-I${DEPS_INSTALL_DIR}/include -I${DEPS_INSTALL_DIR}/include/luajit-2.1") @@ -110,13 +56,41 @@ else() endif() endif() -set(LUV_BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $) -set(LUV_INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config $) +ExternalProject_Add(lua-compat-5.3 + PREFIX ${DEPS_BUILD_DIR} + URL ${LUA_COMPAT53_URL} + DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/lua-compat-5.3 + DOWNLOAD_COMMAND ${CMAKE_COMMAND} + -DPREFIX=${DEPS_BUILD_DIR} + -DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/lua-compat-5.3 + -DURL=${LUA_COMPAT53_URL} + -DEXPECTED_SHA256=${LUA_COMPAT53_SHA256} + -DTARGET=lua-compat-5.3 + -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR} + -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake + CONFIGURE_COMMAND "" + BUILD_COMMAND "" + INSTALL_COMMAND "") -BuildLuv(PATCH_COMMAND ${LUV_PATCH_COMMAND} - CONFIGURE_COMMAND ${LUV_CONFIGURE_COMMAND} - BUILD_COMMAND ${LUV_BUILD_COMMAND} - INSTALL_COMMAND ${LUV_INSTALL_COMMAND}) +ExternalProject_Add(luv-static + PREFIX ${DEPS_BUILD_DIR} + DEPENDS lua-compat-5.3 + URL ${LUV_URL} + DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/luv + DOWNLOAD_COMMAND ${CMAKE_COMMAND} + -DPREFIX=${DEPS_BUILD_DIR} + -DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/luv + -DURL=${LUV_URL} + -DEXPECTED_SHA256=${LUV_SHA256} + -DTARGET=luv-static + # The source is shared with BuildLuarocks (with USE_BUNDLED_LUV). + -DSRC_DIR=${DEPS_BUILD_DIR}/src/luv + -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR} + -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake + CONFIGURE_COMMAND "${LUV_CONFIGURE_COMMAND}" + BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $ + INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config $ + LIST_SEPARATOR |) list(APPEND THIRD_PARTY_DEPS luv-static) if(USE_BUNDLED_LUAJIT) diff --git a/cmake.deps/cmake/BuildMsgpack.cmake b/cmake.deps/cmake/BuildMsgpack.cmake index 1ef00ba3ad..f79117e4b1 100644 --- a/cmake.deps/cmake/BuildMsgpack.cmake +++ b/cmake.deps/cmake/BuildMsgpack.cmake @@ -1,36 +1,3 @@ -# BuildMsgpack(CONFIGURE_COMMAND ... BUILD_COMMAND ... INSTALL_COMMAND ...) -# Reusable function to build msgpack, wraps ExternalProject_Add. -# Failing to pass a command argument will result in no command being run -function(BuildMsgpack) - cmake_parse_arguments(_msgpack - "" - "" - "CONFIGURE_COMMAND;BUILD_COMMAND;INSTALL_COMMAND" - ${ARGN}) - - if(NOT _msgpack_CONFIGURE_COMMAND AND NOT _msgpack_BUILD_COMMAND - AND NOT _msgpack_INSTALL_COMMAND) - message(FATAL_ERROR "Must pass at least one of CONFIGURE_COMMAND, BUILD_COMMAND, INSTALL_COMMAND") - endif() - - ExternalProject_Add(msgpack - PREFIX ${DEPS_BUILD_DIR} - URL ${MSGPACK_URL} - DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/msgpack - DOWNLOAD_COMMAND ${CMAKE_COMMAND} - -DPREFIX=${DEPS_BUILD_DIR} - -DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/msgpack - -DURL=${MSGPACK_URL} - -DEXPECTED_SHA256=${MSGPACK_SHA256} - -DTARGET=msgpack - -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR} - -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake - CONFIGURE_COMMAND "${_msgpack_CONFIGURE_COMMAND}" - BUILD_COMMAND "${_msgpack_BUILD_COMMAND}" - INSTALL_COMMAND "${_msgpack_INSTALL_COMMAND}" - LIST_SEPARATOR |) -endfunction() - set(MSGPACK_CONFIGURE_COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/msgpack -DMSGPACK_BUILD_TESTS=OFF -DMSGPACK_BUILD_EXAMPLES=OFF @@ -40,9 +7,6 @@ set(MSGPACK_CONFIGURE_COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/msgpack "-DCMAKE_C_FLAGS:STRING=${CMAKE_C_COMPILER_ARG1} -fPIC" -DCMAKE_GENERATOR=${CMAKE_GENERATOR}) -set(MSGPACK_BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $) -set(MSGPACK_INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config $) - if(MSVC) # Same as Unix without fPIC set(MSGPACK_CONFIGURE_COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/msgpack @@ -58,8 +22,21 @@ if(MSVC) -DCMAKE_GENERATOR=${CMAKE_GENERATOR}) endif() -BuildMsgpack(CONFIGURE_COMMAND ${MSGPACK_CONFIGURE_COMMAND} - BUILD_COMMAND ${MSGPACK_BUILD_COMMAND} - INSTALL_COMMAND ${MSGPACK_INSTALL_COMMAND}) +ExternalProject_Add(msgpack + PREFIX ${DEPS_BUILD_DIR} + URL ${MSGPACK_URL} + DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/msgpack + DOWNLOAD_COMMAND ${CMAKE_COMMAND} + -DPREFIX=${DEPS_BUILD_DIR} + -DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/msgpack + -DURL=${MSGPACK_URL} + -DEXPECTED_SHA256=${MSGPACK_SHA256} + -DTARGET=msgpack + -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR} + -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake + CONFIGURE_COMMAND "${MSGPACK_CONFIGURE_COMMAND}" + BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $ + INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config $ + LIST_SEPARATOR |) list(APPEND THIRD_PARTY_DEPS msgpack) diff --git a/cmake.deps/cmake/BuildTreesitter.cmake b/cmake.deps/cmake/BuildTreesitter.cmake index 85dd9ab225..fe4e9e2c93 100644 --- a/cmake.deps/cmake/BuildTreesitter.cmake +++ b/cmake.deps/cmake/BuildTreesitter.cmake @@ -1,42 +1,5 @@ -# BuildTreeSitter(TARGET targetname CONFIGURE_COMMAND ... BUILD_COMMAND ... INSTALL_COMMAND ...) -function(BuildTreeSitter) - cmake_parse_arguments(_treesitter - "BUILD_IN_SOURCE" - "TARGET" - "CONFIGURE_COMMAND;BUILD_COMMAND;INSTALL_COMMAND" - ${ARGN}) - - if(NOT _treesitter_CONFIGURE_COMMAND AND NOT _treesitter_BUILD_COMMAND - AND NOT _treesitter_INSTALL_COMMAND) - message(FATAL_ERROR "Must pass at least one of CONFIGURE_COMMAND, BUILD_COMMAND, INSTALL_COMMAND") - endif() - if(NOT _treesitter_TARGET) - set(_treesitter_TARGET "tree-sitter") - endif() - - ExternalProject_Add(tree-sitter - PREFIX ${DEPS_BUILD_DIR} - URL ${TREESITTER_URL} - DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/tree-sitter - INSTALL_DIR ${DEPS_INSTALL_DIR} - DOWNLOAD_COMMAND ${CMAKE_COMMAND} - -DPREFIX=${DEPS_BUILD_DIR} - -DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/tree-sitter - -DURL=${TREESITTER_URL} - -DEXPECTED_SHA256=${TREESITTER_SHA256} - -DTARGET=tree-sitter - -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR} - -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake - BUILD_IN_SOURCE ${_treesitter_BUILD_IN_SOURCE} - PATCH_COMMAND "" - CONFIGURE_COMMAND "${_treesitter_CONFIGURE_COMMAND}" - BUILD_COMMAND "${_treesitter_BUILD_COMMAND}" - INSTALL_COMMAND "${_treesitter_INSTALL_COMMAND}") -endfunction() - if(MSVC) - BuildTreeSitter(BUILD_IN_SOURCE - CONFIGURE_COMMAND ${CMAKE_COMMAND} -E copy + set(TREESITTER_CONFIGURE_COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/cmake/TreesitterCMakeLists.txt ${DEPS_BUILD_DIR}/src/tree-sitter/CMakeLists.txt COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/tree-sitter/CMakeLists.txt @@ -44,16 +7,32 @@ if(MSVC) -DCMAKE_GENERATOR=${CMAKE_GENERATOR} -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} ${BUILD_TYPE_STRING} - -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} - BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $ - INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config $ - ) + -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR}) + set(TREESITTER_BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $) + set(TREESITTER_INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config $) else() set(TS_CFLAGS "-O3 -Wall -Wextra") - BuildTreeSitter(BUILD_IN_SOURCE - CONFIGURE_COMMAND "" - BUILD_COMMAND ${MAKE_PRG} CC=${DEPS_C_COMPILER} CFLAGS=${TS_CFLAGS} - INSTALL_COMMAND ${MAKE_PRG} CC=${DEPS_C_COMPILER} PREFIX=${DEPS_INSTALL_DIR} install) + set(TREESITTER_BUILD_COMMAND ${MAKE_PRG} CC=${DEPS_C_COMPILER} CFLAGS=${TS_CFLAGS}) + set(TREESITTER_INSTALL_COMMAND + ${MAKE_PRG} CC=${DEPS_C_COMPILER} PREFIX=${DEPS_INSTALL_DIR} install) endif() +ExternalProject_Add(tree-sitter + PREFIX ${DEPS_BUILD_DIR} + URL ${TREESITTER_URL} + DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/tree-sitter + INSTALL_DIR ${DEPS_INSTALL_DIR} + DOWNLOAD_COMMAND ${CMAKE_COMMAND} + -DPREFIX=${DEPS_BUILD_DIR} + -DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/tree-sitter + -DURL=${TREESITTER_URL} + -DEXPECTED_SHA256=${TREESITTER_SHA256} + -DTARGET=tree-sitter + -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR} + -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake + BUILD_IN_SOURCE 1 + CONFIGURE_COMMAND "${TREESITTER_CONFIGURE_COMMAND}" + BUILD_COMMAND "${TREESITTER_BUILD_COMMAND}" + INSTALL_COMMAND "${TREESITTER_INSTALL_COMMAND}") + list(APPEND THIRD_PARTY_DEPS tree-sitter) diff --git a/cmake.deps/cmake/BuildUnibilium.cmake b/cmake.deps/cmake/BuildUnibilium.cmake index 44bd816550..020f01ba0b 100644 --- a/cmake.deps/cmake/BuildUnibilium.cmake +++ b/cmake.deps/cmake/BuildUnibilium.cmake @@ -1,48 +1,37 @@ if(WIN32) - ExternalProject_Add(unibilium - PREFIX ${DEPS_BUILD_DIR} - URL ${UNIBILIUM_URL} - DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/unibilium - DOWNLOAD_COMMAND ${CMAKE_COMMAND} - -DPREFIX=${DEPS_BUILD_DIR} - -DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/unibilium - -DURL=${UNIBILIUM_URL} - -DEXPECTED_SHA256=${UNIBILIUM_SHA256} - -DTARGET=unibilium - -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR} - -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake - CONFIGURE_COMMAND ${CMAKE_COMMAND} -E copy + set(UNIBILIUM_CONFIGURE_COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/cmake/UnibiliumCMakeLists.txt ${DEPS_BUILD_DIR}/src/unibilium/CMakeLists.txt - COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/unibilium - -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} - # Pass toolchain - -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN} - -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} - ${BUILD_TYPE_STRING} - -DCMAKE_GENERATOR=${CMAKE_GENERATOR} - BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $ - INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config $) + COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/unibilium + -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} + # Pass toolchain + -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN} + -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} + ${BUILD_TYPE_STRING} + -DCMAKE_GENERATOR=${CMAKE_GENERATOR}) + set(UNIBILIUM_BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $) + set(UNIBILIUM_INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config $) else() - ExternalProject_Add(unibilium - PREFIX ${DEPS_BUILD_DIR} - URL ${UNIBILIUM_URL} - DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/unibilium - DOWNLOAD_COMMAND ${CMAKE_COMMAND} - -DPREFIX=${DEPS_BUILD_DIR} - -DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/unibilium - -DURL=${UNIBILIUM_URL} - -DEXPECTED_SHA256=${UNIBILIUM_SHA256} - -DTARGET=unibilium - -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR} - -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake - CONFIGURE_COMMAND "" - BUILD_IN_SOURCE 1 - BUILD_COMMAND ${MAKE_PRG} CC=${DEPS_C_COMPILER} - PREFIX=${DEPS_INSTALL_DIR} - CFLAGS=-fPIC - LDFLAGS+=-static - INSTALL_COMMAND ${MAKE_PRG} PREFIX=${DEPS_INSTALL_DIR} install) + set(UNIBILIUM_BUILD_COMMAND ${MAKE_PRG} CC=${DEPS_C_COMPILER} + PREFIX=${DEPS_INSTALL_DIR} CFLAGS=-fPIC LDFLAGS+=-static + BUILD_IN_SOURCE 1) + set(UNIBILIUM_INSTALL_COMMAND ${MAKE_PRG} PREFIX=${DEPS_INSTALL_DIR} install) endif() +ExternalProject_Add(unibilium + PREFIX ${DEPS_BUILD_DIR} + URL ${UNIBILIUM_URL} + DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/unibilium + DOWNLOAD_COMMAND ${CMAKE_COMMAND} + -DPREFIX=${DEPS_BUILD_DIR} + -DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/unibilium + -DURL=${UNIBILIUM_URL} + -DEXPECTED_SHA256=${UNIBILIUM_SHA256} + -DTARGET=unibilium + -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR} + -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake + CONFIGURE_COMMAND "${UNIBILIUM_CONFIGURE_COMMAND}" + BUILD_COMMAND "${UNIBILIUM_BUILD_COMMAND}" + INSTALL_COMMAND "${UNIBILIUM_INSTALL_COMMAND}") + list(APPEND THIRD_PARTY_DEPS unibilium) -- cgit From bde6176c9107e32466f28dc96e9a71fd4d7bb644 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Thu, 8 Sep 2022 14:26:18 -0700 Subject: feat(treesitter): bundle :help parser and queries parser from https://github.com/vigoux/tree-sitter-vimdoc queries from nvim-treesitter --- cmake.deps/cmake/BuildTreesitterParsers.cmake | 1 + 1 file changed, 1 insertion(+) (limited to 'cmake.deps/cmake') diff --git a/cmake.deps/cmake/BuildTreesitterParsers.cmake b/cmake.deps/cmake/BuildTreesitterParsers.cmake index dd3f4eb308..25d2fd21a3 100644 --- a/cmake.deps/cmake/BuildTreesitterParsers.cmake +++ b/cmake.deps/cmake/BuildTreesitterParsers.cmake @@ -23,3 +23,4 @@ endfunction() BuildTSParser(c ${TREESITTER_C_URL} ${TREESITTER_C_SHA256} TreesitterParserCMakeLists.txt) BuildTSParser(lua ${TREESITTER_LUA_URL} ${TREESITTER_LUA_SHA256} TreesitterParserCMakeLists.txt) BuildTSParser(vim ${TREESITTER_VIM_URL} ${TREESITTER_VIM_SHA256} TreesitterParserCMakeLists.txt) +BuildTSParser(help ${TREESITTER_HELP_URL} ${TREESITTER_HELP_SHA256} TreesitterParserCMakeLists.txt) -- cgit From eb4844b5ed9bcf8c434a93b9f9def4fe81557f37 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Wed, 28 Sep 2022 11:06:11 +0200 Subject: build(macos): restore and test universal build (#20383) Build tree-sitter parsers for arm64 as well as x86 Check that all created binaries contain both architectures --- cmake.deps/cmake/BuildTreesitterParsers.cmake | 2 ++ 1 file changed, 2 insertions(+) (limited to 'cmake.deps/cmake') diff --git a/cmake.deps/cmake/BuildTreesitterParsers.cmake b/cmake.deps/cmake/BuildTreesitterParsers.cmake index 25d2fd21a3..e08792f62a 100644 --- a/cmake.deps/cmake/BuildTreesitterParsers.cmake +++ b/cmake.deps/cmake/BuildTreesitterParsers.cmake @@ -4,6 +4,8 @@ function(BuildTSParser LANG TS_URL TS_SHA256 TS_CMAKE_FILE) PREFIX ${DEPS_BUILD_DIR} URL ${TREESITTER_C_URL} DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/${NAME} + CMAKE_CACHE_ARGS + -DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES} DOWNLOAD_COMMAND ${CMAKE_COMMAND} -DPREFIX=${DEPS_BUILD_DIR} -DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/${NAME} -- cgit From 816026ba10c6f6bffabd181b17d95c46b827540e Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Sun, 2 Oct 2022 12:08:29 +0200 Subject: build(deps): bump libuv to HEAD - f610339f7 (#20445) also remove libuv-disable-shared patch --- cmake.deps/cmake/BuildLibuv.cmake | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) (limited to 'cmake.deps/cmake') diff --git a/cmake.deps/cmake/BuildLibuv.cmake b/cmake.deps/cmake/BuildLibuv.cmake index aee3b9a43f..dc2ca26c27 100644 --- a/cmake.deps/cmake/BuildLibuv.cmake +++ b/cmake.deps/cmake/BuildLibuv.cmake @@ -17,10 +17,6 @@ ExternalProject_Add(libuv -DEXPECTED_SHA256=${LIBUV_SHA256} -DTARGET=libuv -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR} - -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake - PATCH_COMMAND - ${GIT_EXECUTABLE} -C ${DEPS_BUILD_DIR}/src/libuv init - COMMAND ${GIT_EXECUTABLE} -C ${DEPS_BUILD_DIR}/src/libuv apply --ignore-whitespace - ${CMAKE_CURRENT_SOURCE_DIR}/patches/libuv-disable-shared.patch) + -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake) list(APPEND THIRD_PARTY_DEPS libuv) -- cgit From 06addcfaa956d5cffeba10ff9e41c4e8e2a33d1d Mon Sep 17 00:00:00 2001 From: dundargoc Date: Sun, 11 Sep 2022 13:39:49 +0200 Subject: build: remove unused variable CMAKE_C_COMPILER_ARG1 It was set in file cmake/i386-linux-gnu.toolchain.cmake which has been removed since we don't use Travis anymore. --- cmake.deps/cmake/BuildLibvterm.cmake | 6 ++---- cmake.deps/cmake/BuildLua.cmake | 2 +- cmake.deps/cmake/BuildLuv.cmake | 5 ++--- cmake.deps/cmake/BuildMsgpack.cmake | 3 +-- 4 files changed, 6 insertions(+), 10 deletions(-) (limited to 'cmake.deps/cmake') diff --git a/cmake.deps/cmake/BuildLibvterm.cmake b/cmake.deps/cmake/BuildLibvterm.cmake index 8ab81e9bbe..d81e70518a 100644 --- a/cmake.deps/cmake/BuildLibvterm.cmake +++ b/cmake.deps/cmake/BuildLibvterm.cmake @@ -10,10 +10,8 @@ if(WIN32) -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} -DCMAKE_GENERATOR=${CMAKE_GENERATOR}) - if(MSVC) - list(APPEND LIBVTERM_CONFIGURE_COMMAND "-DCMAKE_C_FLAGS:STRING=${CMAKE_C_COMPILER_ARG1}") - else() - list(APPEND LIBVTERM_CONFIGURE_COMMAND "-DCMAKE_C_FLAGS:STRING=${CMAKE_C_COMPILER_ARG1} -fPIC") + if(NOT MSVC) + list(APPEND LIBVTERM_CONFIGURE_COMMAND "-DCMAKE_C_FLAGS:STRING=-fPIC") endif() set(LIBVTERM_BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $) set(LIBVTERM_INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config $) diff --git a/cmake.deps/cmake/BuildLua.cmake b/cmake.deps/cmake/BuildLua.cmake index 58131a4ba7..f4581ddadd 100644 --- a/cmake.deps/cmake/BuildLua.cmake +++ b/cmake.deps/cmake/BuildLua.cmake @@ -28,7 +28,7 @@ if(CLANG_ASAN_UBSAN) endif() set(LUA_CONFIGURE_COMMAND - sed -e "/^CC/s@gcc@${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_ARG1}@" + sed -e "/^CC/s@gcc@${CMAKE_C_COMPILER}@" -e "/^CFLAGS/s@-O2@${LUA_CFLAGS}@" -e "/^MYLDFLAGS/s@$@${LUA_LDFLAGS}@" -e "s@-lreadline@@g" diff --git a/cmake.deps/cmake/BuildLuv.cmake b/cmake.deps/cmake/BuildLuv.cmake index 9aafd9239a..319602cd42 100644 --- a/cmake.deps/cmake/BuildLuv.cmake +++ b/cmake.deps/cmake/BuildLuv.cmake @@ -40,8 +40,7 @@ if(MSVC) ${LUV_CONFIGURE_COMMAND_COMMON} -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} - # Same as Unix without fPIC - "-DCMAKE_C_FLAGS:STRING=${CMAKE_C_COMPILER_ARG1} ${LUV_INCLUDE_FLAGS}" + "-DCMAKE_C_FLAGS:STRING=${LUV_INCLUDE_FLAGS}" # Make sure we use the same generator, otherwise we may # accidentally end up using different MSVC runtimes -DCMAKE_GENERATOR=${CMAKE_GENERATOR}) @@ -49,7 +48,7 @@ else() set(LUV_CONFIGURE_COMMAND ${LUV_CONFIGURE_COMMAND_COMMON} -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} - "-DCMAKE_C_FLAGS:STRING=${CMAKE_C_COMPILER_ARG1} ${LUV_INCLUDE_FLAGS} -fPIC") + "-DCMAKE_C_FLAGS:STRING=${LUV_INCLUDE_FLAGS} -fPIC") if(CMAKE_GENERATOR MATCHES "Unix Makefiles" AND (CMAKE_SYSTEM_NAME MATCHES ".*BSD" OR CMAKE_SYSTEM_NAME MATCHES "DragonFly")) set(LUV_CONFIGURE_COMMAND ${LUV_CONFIGURE_COMMAND} -DCMAKE_MAKE_PROGRAM=gmake) diff --git a/cmake.deps/cmake/BuildMsgpack.cmake b/cmake.deps/cmake/BuildMsgpack.cmake index f79117e4b1..694ca1f108 100644 --- a/cmake.deps/cmake/BuildMsgpack.cmake +++ b/cmake.deps/cmake/BuildMsgpack.cmake @@ -4,7 +4,7 @@ set(MSGPACK_CONFIGURE_COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/msgpack -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES_ALT_SEP} - "-DCMAKE_C_FLAGS:STRING=${CMAKE_C_COMPILER_ARG1} -fPIC" + "-DCMAKE_C_FLAGS:STRING=-fPIC" -DCMAKE_GENERATOR=${CMAKE_GENERATOR}) if(MSVC) @@ -16,7 +16,6 @@ if(MSVC) -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} ${BUILD_TYPE_STRING} - "-DCMAKE_C_FLAGS:STRING=${CMAKE_C_COMPILER_ARG1}" # Make sure we use the same generator, otherwise we may # accidentally end up using different MSVC runtimes -DCMAKE_GENERATOR=${CMAKE_GENERATOR}) -- cgit From 3ce325cfa26d7fbecf49a32a1f59bd07768c6f4b Mon Sep 17 00:00:00 2001 From: dundargoc Date: Wed, 14 Sep 2022 12:03:19 +0200 Subject: build: remove code for cross-compilation We don't support cross-compilation at the moment, so these can be safely removed. --- cmake.deps/cmake/BuildGettext.cmake | 2 -- cmake.deps/cmake/BuildLibiconv.cmake | 2 -- cmake.deps/cmake/BuildLibtermkey.cmake | 2 -- cmake.deps/cmake/BuildLuarocks.cmake | 28 ++++++++++++---------------- cmake.deps/cmake/BuildUnibilium.cmake | 2 -- 5 files changed, 12 insertions(+), 24 deletions(-) (limited to 'cmake.deps/cmake') diff --git a/cmake.deps/cmake/BuildGettext.cmake b/cmake.deps/cmake/BuildGettext.cmake index d903fbc737..173b9675d6 100644 --- a/cmake.deps/cmake/BuildGettext.cmake +++ b/cmake.deps/cmake/BuildGettext.cmake @@ -16,8 +16,6 @@ if(MSVC) ${DEPS_BUILD_DIR}/src/gettext/CMakeLists.txt COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/gettext -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} - # Pass toolchain - -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN} ${BUILD_TYPE_STRING} -DCMAKE_GENERATOR=${CMAKE_GENERATOR} -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} diff --git a/cmake.deps/cmake/BuildLibiconv.cmake b/cmake.deps/cmake/BuildLibiconv.cmake index 29168340a1..169728ab1f 100644 --- a/cmake.deps/cmake/BuildLibiconv.cmake +++ b/cmake.deps/cmake/BuildLibiconv.cmake @@ -16,8 +16,6 @@ if(MSVC) ${DEPS_BUILD_DIR}/src/libiconv/CMakeLists.txt COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/libiconv -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} - # Pass toolchain - -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN} ${BUILD_TYPE_STRING} -DCMAKE_GENERATOR=${CMAKE_GENERATOR} -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} diff --git a/cmake.deps/cmake/BuildLibtermkey.cmake b/cmake.deps/cmake/BuildLibtermkey.cmake index ee35112823..f70cb191bd 100644 --- a/cmake.deps/cmake/BuildLibtermkey.cmake +++ b/cmake.deps/cmake/BuildLibtermkey.cmake @@ -4,8 +4,6 @@ if(WIN32) ${DEPS_BUILD_DIR}/src/libtermkey/CMakeLists.txt COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/libtermkey -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} - # Pass toolchain - -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN} ${BUILD_TYPE_STRING} # Hack to avoid -rdynamic in Mingw -DCMAKE_SHARED_LIBRARY_LINK_C_FLAGS="" diff --git a/cmake.deps/cmake/BuildLuarocks.cmake b/cmake.deps/cmake/BuildLuarocks.cmake index 838653e7cb..a3511b048d 100644 --- a/cmake.deps/cmake/BuildLuarocks.cmake +++ b/cmake.deps/cmake/BuildLuarocks.cmake @@ -1,8 +1,4 @@ -# Luarocks recipe. Luarocks is only required when building Neovim, when -# cross compiling we still want to build for the HOST system, whenever -# writing a recipe that is meant for cross-compile, use the HOSTDEPS_* variables -# instead of DEPS_* - check the main CMakeLists.txt for a list. -# +# Luarocks recipe. Luarocks is only required when building Neovim. # NOTE: LuaRocks rocks need to "DEPENDS" on the previous module, because # running luarocks in parallel will break, e.g. when some rocks have # the same dependency.. @@ -10,13 +6,13 @@ option(USE_BUNDLED_BUSTED "Use the bundled version of busted to run tests." ON) # The luarocks binary location -set(LUAROCKS_BINARY ${HOSTDEPS_BIN_DIR}/luarocks) +set(LUAROCKS_BINARY ${DEPS_BIN_DIR}/luarocks) # Arguments for calls to 'luarocks build' if(NOT MSVC) # In MSVC don't pass the compiler/linker to luarocks, the bundled # version already knows, and passing them here breaks the build - set(LUAROCKS_BUILDARGS CC=${HOSTDEPS_C_COMPILER} LD=${HOSTDEPS_C_COMPILER}) + set(LUAROCKS_BUILDARGS CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER}) endif() # Lua version, used with rocks directories. @@ -27,12 +23,12 @@ if(UNIX) if(USE_BUNDLED_LUAJIT) list(APPEND LUAROCKS_OPTS - --with-lua=${HOSTDEPS_INSTALL_DIR} - --with-lua-include=${HOSTDEPS_INSTALL_DIR}/include/luajit-2.1 + --with-lua=${DEPS_INSTALL_DIR} + --with-lua-include=${DEPS_INSTALL_DIR}/include/luajit-2.1 --with-lua-interpreter=luajit) elseif(USE_BUNDLED_LUA) list(APPEND LUAROCKS_OPTS - --with-lua=${HOSTDEPS_INSTALL_DIR}) + --with-lua=${DEPS_INSTALL_DIR}) else() find_package(LuaJit) if(LUAJIT_FOUND) @@ -58,7 +54,7 @@ if(UNIX) endif() set(LUAROCKS_CONFIGURE_COMMAND ${DEPS_BUILD_DIR}/src/luarocks/configure - --prefix=${HOSTDEPS_INSTALL_DIR} --force-config ${LUAROCKS_OPTS}) + --prefix=${DEPS_INSTALL_DIR} --force-config ${LUAROCKS_OPTS}) set(LUAROCKS_INSTALL_COMMAND ${MAKE_PRG} -j1 bootstrap) elseif(MSVC OR MINGW) @@ -109,7 +105,7 @@ if(USE_BUNDLED_LUAJIT) elseif(USE_BUNDLED_LUA) add_dependencies(luarocks lua) endif() -set(ROCKS_DIR ${HOSTDEPS_LIB_DIR}/luarocks/rocks-${LUA_VERSION}) +set(ROCKS_DIR ${DEPS_LIB_DIR}/luarocks/rocks-${LUA_VERSION}) # mpack add_custom_command(OUTPUT ${ROCKS_DIR}/mpack @@ -149,11 +145,11 @@ if(USE_BUNDLED_BUSTED) # busted if(WIN32) - set(BUSTED_EXE "${HOSTDEPS_BIN_DIR}/busted.bat") - set(LUACHECK_EXE "${HOSTDEPS_BIN_DIR}/luacheck.bat") + set(BUSTED_EXE "${DEPS_BIN_DIR}/busted.bat") + set(LUACHECK_EXE "${DEPS_BIN_DIR}/luacheck.bat") else() - set(BUSTED_EXE "${HOSTDEPS_BIN_DIR}/busted") - set(LUACHECK_EXE "${HOSTDEPS_BIN_DIR}/luacheck") + set(BUSTED_EXE "${DEPS_BIN_DIR}/busted") + set(LUACHECK_EXE "${DEPS_BIN_DIR}/luacheck") endif() add_custom_command(OUTPUT ${BUSTED_EXE} COMMAND ${LUAROCKS_BINARY} build busted 2.0.0 ${LUAROCKS_BUILDARGS} diff --git a/cmake.deps/cmake/BuildUnibilium.cmake b/cmake.deps/cmake/BuildUnibilium.cmake index 020f01ba0b..9009a4f6f3 100644 --- a/cmake.deps/cmake/BuildUnibilium.cmake +++ b/cmake.deps/cmake/BuildUnibilium.cmake @@ -4,8 +4,6 @@ if(WIN32) ${DEPS_BUILD_DIR}/src/unibilium/CMakeLists.txt COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/unibilium -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} - # Pass toolchain - -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN} -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} ${BUILD_TYPE_STRING} -DCMAKE_GENERATOR=${CMAKE_GENERATOR}) -- cgit From 543f939773c0e349f1160e46fa020a80dc4da0d3 Mon Sep 17 00:00:00 2001 From: dundargoc Date: Wed, 14 Sep 2022 12:20:10 +0200 Subject: build: remove url for 32-bit winyank We don't support 32bit Windows anymore, so it's not needed. Also remove TargetArch.cmake and related code as we don't need architecture detection for the same reason. --- cmake.deps/cmake/TargetArch.cmake | 23 ----------------------- 1 file changed, 23 deletions(-) delete mode 100644 cmake.deps/cmake/TargetArch.cmake (limited to 'cmake.deps/cmake') diff --git a/cmake.deps/cmake/TargetArch.cmake b/cmake.deps/cmake/TargetArch.cmake deleted file mode 100644 index 71ea44ec59..0000000000 --- a/cmake.deps/cmake/TargetArch.cmake +++ /dev/null @@ -1,23 +0,0 @@ -# Sets TARGET_ARCH to a normalized name (X86 or X86_64). -# See https://github.com/axr/solar-cmake/blob/master/TargetArch.cmake -include(CheckSymbolExists) - -# X86 -check_symbol_exists("_M_IX86" "" T_M_IX86) -check_symbol_exists("__i386__" "" T_I386) -if(T_M_IX86 OR T_I386) -set(TARGET_ARCH "X86") - return() -endif() - -# X86_64 -check_symbol_exists("_M_AMD64" "" T_M_AMD64) -check_symbol_exists("__x86_64__" "" T_X86_64) -check_symbol_exists("__amd64__" "" T_AMD64) - -if(T_M_AMD64 OR T_X86_64 OR T_AMD64) -set(TARGET_ARCH "X86_64") - return() -endif() - -message(FATAL_ERROR "Unknown target architecture") -- cgit From 59d5f692f8f563bf6f7c232f971ad764316e4466 Mon Sep 17 00:00:00 2001 From: dundargoc Date: Thu, 29 Sep 2022 21:46:14 +0200 Subject: build: rely on builtin cmake downloading rather than custom script DownloadAndExtractFile.cmake was initially introduced as a workaround to avoid the massive amounts of logs generated by the download progress. This is not a problem anymore as ExternalProject_Add has had the DOWNLOAD_NO_PROGRESS option since cmake version 3.1. --- cmake.deps/cmake/BuildGettext.cmake | 10 +- cmake.deps/cmake/BuildLibiconv.cmake | 10 +- cmake.deps/cmake/BuildLibtermkey.cmake | 10 +- cmake.deps/cmake/BuildLibuv.cmake | 12 +- cmake.deps/cmake/BuildLibvterm.cmake | 10 +- cmake.deps/cmake/BuildLua.cmake | 10 +- cmake.deps/cmake/BuildLuajit.cmake | 10 +- cmake.deps/cmake/BuildLuarocks.cmake | 10 +- cmake.deps/cmake/BuildLuv.cmake | 23 +-- cmake.deps/cmake/BuildMsgpack.cmake | 10 +- cmake.deps/cmake/BuildTreesitter.cmake | 10 +- cmake.deps/cmake/BuildTreesitterParsers.cmake | 28 ++-- cmake.deps/cmake/BuildUnibilium.cmake | 10 +- cmake.deps/cmake/DownloadAndExtractFile.cmake | 195 -------------------------- cmake.deps/cmake/GetBinaryDeps.cmake | 10 +- 15 files changed, 41 insertions(+), 327 deletions(-) delete mode 100644 cmake.deps/cmake/DownloadAndExtractFile.cmake (limited to 'cmake.deps/cmake') diff --git a/cmake.deps/cmake/BuildGettext.cmake b/cmake.deps/cmake/BuildGettext.cmake index 173b9675d6..f2fdd68e28 100644 --- a/cmake.deps/cmake/BuildGettext.cmake +++ b/cmake.deps/cmake/BuildGettext.cmake @@ -2,15 +2,9 @@ if(MSVC) ExternalProject_Add(gettext PREFIX ${DEPS_BUILD_DIR} URL ${GETTEXT_URL} + URL_HASH SHA256=${GETTEXT_SHA256} + DOWNLOAD_NO_PROGRESS TRUE DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/gettext - DOWNLOAD_COMMAND ${CMAKE_COMMAND} - -DPREFIX=${DEPS_BUILD_DIR} - -DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/gettext - -DURL=${GETTEXT_URL} - -DEXPECTED_SHA256=${GETTEXT_SHA256} - -DTARGET=gettext - -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR} - -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake CONFIGURE_COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/cmake/GettextCMakeLists.txt ${DEPS_BUILD_DIR}/src/gettext/CMakeLists.txt diff --git a/cmake.deps/cmake/BuildLibiconv.cmake b/cmake.deps/cmake/BuildLibiconv.cmake index 169728ab1f..d67b50c3a5 100644 --- a/cmake.deps/cmake/BuildLibiconv.cmake +++ b/cmake.deps/cmake/BuildLibiconv.cmake @@ -2,15 +2,9 @@ if(MSVC) ExternalProject_Add(libiconv PREFIX ${DEPS_BUILD_DIR} URL ${LIBICONV_URL} + URL_HASH SHA256=${LIBICONV_SHA256} + DOWNLOAD_NO_PROGRESS TRUE DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/libiconv - DOWNLOAD_COMMAND ${CMAKE_COMMAND} - -DPREFIX=${DEPS_BUILD_DIR} - -DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/libiconv - -DURL=${LIBICONV_URL} - -DEXPECTED_SHA256=${LIBICONV_SHA256} - -DTARGET=libiconv - -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR} - -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake CONFIGURE_COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/cmake/LibiconvCMakeLists.txt ${DEPS_BUILD_DIR}/src/libiconv/CMakeLists.txt diff --git a/cmake.deps/cmake/BuildLibtermkey.cmake b/cmake.deps/cmake/BuildLibtermkey.cmake index f70cb191bd..3a571ccdc4 100644 --- a/cmake.deps/cmake/BuildLibtermkey.cmake +++ b/cmake.deps/cmake/BuildLibtermkey.cmake @@ -25,15 +25,9 @@ endif() ExternalProject_Add(libtermkey PREFIX ${DEPS_BUILD_DIR} URL ${LIBTERMKEY_URL} + URL_HASH SHA256=${LIBTERMKEY_SHA256} + DOWNLOAD_NO_PROGRESS TRUE DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/libtermkey - DOWNLOAD_COMMAND ${CMAKE_COMMAND} - -DPREFIX=${DEPS_BUILD_DIR} - -DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/libtermkey - -DURL=${LIBTERMKEY_URL} - -DEXPECTED_SHA256=${LIBTERMKEY_SHA256} - -DTARGET=libtermkey - -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR} - -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake CONFIGURE_COMMAND "${LIBTERMKEY_CONFIGURE_COMMAND}" BUILD_COMMAND "${LIBTERMKEY_BUILD_COMMAND}" INSTALL_COMMAND "${LIBTERMKEY_INSTALL_COMMAND}") diff --git a/cmake.deps/cmake/BuildLibuv.cmake b/cmake.deps/cmake/BuildLibuv.cmake index dc2ca26c27..713cf2e4eb 100644 --- a/cmake.deps/cmake/BuildLibuv.cmake +++ b/cmake.deps/cmake/BuildLibuv.cmake @@ -1,6 +1,8 @@ ExternalProject_Add(libuv PREFIX ${DEPS_BUILD_DIR} URL ${LIBUV_URL} + URL_HASH SHA256=${LIBUV_SHA256} + DOWNLOAD_NO_PROGRESS TRUE CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} -DCMAKE_INSTALL_LIBDIR=lib @@ -9,14 +11,6 @@ ExternalProject_Add(libuv -DLIBUV_BUILD_SHARED=OFF CMAKE_CACHE_ARGS -DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES} - DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/libuv - DOWNLOAD_COMMAND ${CMAKE_COMMAND} - -DPREFIX=${DEPS_BUILD_DIR} - -DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/libuv - -DURL=${LIBUV_URL} - -DEXPECTED_SHA256=${LIBUV_SHA256} - -DTARGET=libuv - -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR} - -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake) + DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/libuv) list(APPEND THIRD_PARTY_DEPS libuv) diff --git a/cmake.deps/cmake/BuildLibvterm.cmake b/cmake.deps/cmake/BuildLibvterm.cmake index d81e70518a..d2c04d5b28 100644 --- a/cmake.deps/cmake/BuildLibvterm.cmake +++ b/cmake.deps/cmake/BuildLibvterm.cmake @@ -27,15 +27,9 @@ endif() ExternalProject_Add(libvterm PREFIX ${DEPS_BUILD_DIR} URL ${LIBVTERM_URL} + URL_HASH SHA256=${LIBVTERM_SHA256} + DOWNLOAD_NO_PROGRESS TRUE DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/libvterm - DOWNLOAD_COMMAND ${CMAKE_COMMAND} - -DPREFIX=${DEPS_BUILD_DIR} - -DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/libvterm - -DURL=${LIBVTERM_URL} - -DEXPECTED_SHA256=${LIBVTERM_SHA256} - -DTARGET=libvterm - -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR} - -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake BUILD_IN_SOURCE 1 CONFIGURE_COMMAND "${LIBVTERM_CONFIGURE_COMMAND}" BUILD_COMMAND "${LIBVTERM_BUILD_COMMAND}" diff --git a/cmake.deps/cmake/BuildLua.cmake b/cmake.deps/cmake/BuildLua.cmake index f4581ddadd..ccfcc01474 100644 --- a/cmake.deps/cmake/BuildLua.cmake +++ b/cmake.deps/cmake/BuildLua.cmake @@ -45,15 +45,9 @@ message(STATUS "Lua target is ${LUA_TARGET}") ExternalProject_Add(lua PREFIX ${DEPS_BUILD_DIR} URL ${LUA_URL} + URL_HASH SHA256=${LUA_SHA256} + DOWNLOAD_NO_PROGRESS TRUE DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/lua - DOWNLOAD_COMMAND ${CMAKE_COMMAND} - -DPREFIX=${DEPS_BUILD_DIR} - -DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/lua - -DURL=${LUA_URL} - -DEXPECTED_SHA256=${LUA_SHA256} - -DTARGET=lua - -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR} - -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake CONFIGURE_COMMAND "${LUA_CONFIGURE_COMMAND}" BUILD_IN_SOURCE 1 BUILD_COMMAND ${MAKE_PRG} ${LUA_INSTALL_TOP_ARG} ${LUA_TARGET} diff --git a/cmake.deps/cmake/BuildLuajit.cmake b/cmake.deps/cmake/BuildLuajit.cmake index 9b393310d6..05a15a8bb6 100644 --- a/cmake.deps/cmake/BuildLuajit.cmake +++ b/cmake.deps/cmake/BuildLuajit.cmake @@ -18,15 +18,9 @@ function(BuildLuajit) ExternalProject_Add(${_luajit_TARGET} PREFIX ${DEPS_BUILD_DIR} URL ${LUAJIT_URL} + URL_HASH SHA256=${LUAJIT_SHA256} + DOWNLOAD_NO_PROGRESS TRUE DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/luajit - DOWNLOAD_COMMAND ${CMAKE_COMMAND} - -DPREFIX=${DEPS_BUILD_DIR} - -DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/luajit - -DURL=${LUAJIT_URL} - -DEXPECTED_SHA256=${LUAJIT_SHA256} - -DTARGET=${_luajit_TARGET} - -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR} - -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake CONFIGURE_COMMAND "${_luajit_CONFIGURE_COMMAND}" BUILD_IN_SOURCE 1 BUILD_COMMAND "${_luajit_BUILD_COMMAND}" diff --git a/cmake.deps/cmake/BuildLuarocks.cmake b/cmake.deps/cmake/BuildLuarocks.cmake index a3511b048d..33fd995839 100644 --- a/cmake.deps/cmake/BuildLuarocks.cmake +++ b/cmake.deps/cmake/BuildLuarocks.cmake @@ -84,15 +84,9 @@ endif() ExternalProject_Add(luarocks PREFIX ${DEPS_BUILD_DIR} URL ${LUAROCKS_URL} + URL_HASH SHA256=${LUAROCKS_SHA256} + DOWNLOAD_NO_PROGRESS TRUE DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/luarocks - DOWNLOAD_COMMAND ${CMAKE_COMMAND} - -DPREFIX=${DEPS_BUILD_DIR} - -DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/luarocks - -DURL=${LUAROCKS_URL} - -DEXPECTED_SHA256=${LUAROCKS_SHA256} - -DTARGET=luarocks - -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR} - -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake BUILD_IN_SOURCE 1 CONFIGURE_COMMAND "${LUAROCKS_CONFIGURE_COMMAND}" BUILD_COMMAND "" diff --git a/cmake.deps/cmake/BuildLuv.cmake b/cmake.deps/cmake/BuildLuv.cmake index 319602cd42..6b0360e363 100644 --- a/cmake.deps/cmake/BuildLuv.cmake +++ b/cmake.deps/cmake/BuildLuv.cmake @@ -58,15 +58,9 @@ endif() ExternalProject_Add(lua-compat-5.3 PREFIX ${DEPS_BUILD_DIR} URL ${LUA_COMPAT53_URL} + URL_HASH SHA256=${LUA_COMPAT53_SHA256} + DOWNLOAD_NO_PROGRESS TRUE DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/lua-compat-5.3 - DOWNLOAD_COMMAND ${CMAKE_COMMAND} - -DPREFIX=${DEPS_BUILD_DIR} - -DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/lua-compat-5.3 - -DURL=${LUA_COMPAT53_URL} - -DEXPECTED_SHA256=${LUA_COMPAT53_SHA256} - -DTARGET=lua-compat-5.3 - -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR} - -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND "") @@ -75,17 +69,10 @@ ExternalProject_Add(luv-static PREFIX ${DEPS_BUILD_DIR} DEPENDS lua-compat-5.3 URL ${LUV_URL} + URL_HASH SHA256=${LUV_SHA256} + DOWNLOAD_NO_PROGRESS TRUE DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/luv - DOWNLOAD_COMMAND ${CMAKE_COMMAND} - -DPREFIX=${DEPS_BUILD_DIR} - -DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/luv - -DURL=${LUV_URL} - -DEXPECTED_SHA256=${LUV_SHA256} - -DTARGET=luv-static - # The source is shared with BuildLuarocks (with USE_BUNDLED_LUV). - -DSRC_DIR=${DEPS_BUILD_DIR}/src/luv - -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR} - -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake + SOURCE_DIR ${DEPS_BUILD_DIR}/src/luv CONFIGURE_COMMAND "${LUV_CONFIGURE_COMMAND}" BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $ INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config $ diff --git a/cmake.deps/cmake/BuildMsgpack.cmake b/cmake.deps/cmake/BuildMsgpack.cmake index 694ca1f108..d2a0dfd132 100644 --- a/cmake.deps/cmake/BuildMsgpack.cmake +++ b/cmake.deps/cmake/BuildMsgpack.cmake @@ -24,15 +24,9 @@ endif() ExternalProject_Add(msgpack PREFIX ${DEPS_BUILD_DIR} URL ${MSGPACK_URL} + URL_HASH SHA256=${MSGPACK_SHA256} + DOWNLOAD_NO_PROGRESS TRUE DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/msgpack - DOWNLOAD_COMMAND ${CMAKE_COMMAND} - -DPREFIX=${DEPS_BUILD_DIR} - -DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/msgpack - -DURL=${MSGPACK_URL} - -DEXPECTED_SHA256=${MSGPACK_SHA256} - -DTARGET=msgpack - -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR} - -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake CONFIGURE_COMMAND "${MSGPACK_CONFIGURE_COMMAND}" BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $ INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config $ diff --git a/cmake.deps/cmake/BuildTreesitter.cmake b/cmake.deps/cmake/BuildTreesitter.cmake index fe4e9e2c93..aa545b3a3b 100644 --- a/cmake.deps/cmake/BuildTreesitter.cmake +++ b/cmake.deps/cmake/BuildTreesitter.cmake @@ -20,16 +20,10 @@ endif() ExternalProject_Add(tree-sitter PREFIX ${DEPS_BUILD_DIR} URL ${TREESITTER_URL} + URL_HASH SHA256=${TREESITTER_SHA256} + DOWNLOAD_NO_PROGRESS TRUE DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/tree-sitter INSTALL_DIR ${DEPS_INSTALL_DIR} - DOWNLOAD_COMMAND ${CMAKE_COMMAND} - -DPREFIX=${DEPS_BUILD_DIR} - -DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/tree-sitter - -DURL=${TREESITTER_URL} - -DEXPECTED_SHA256=${TREESITTER_SHA256} - -DTARGET=tree-sitter - -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR} - -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake BUILD_IN_SOURCE 1 CONFIGURE_COMMAND "${TREESITTER_CONFIGURE_COMMAND}" BUILD_COMMAND "${TREESITTER_BUILD_COMMAND}" diff --git a/cmake.deps/cmake/BuildTreesitterParsers.cmake b/cmake.deps/cmake/BuildTreesitterParsers.cmake index e08792f62a..ad45491861 100644 --- a/cmake.deps/cmake/BuildTreesitterParsers.cmake +++ b/cmake.deps/cmake/BuildTreesitterParsers.cmake @@ -1,25 +1,19 @@ function(BuildTSParser LANG TS_URL TS_SHA256 TS_CMAKE_FILE) set(NAME treesitter-${LANG}) ExternalProject_Add(${NAME} - PREFIX ${DEPS_BUILD_DIR} - URL ${TREESITTER_C_URL} - DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/${NAME} - CMAKE_CACHE_ARGS - -DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES} - DOWNLOAD_COMMAND ${CMAKE_COMMAND} - -DPREFIX=${DEPS_BUILD_DIR} - -DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/${NAME} - -DURL=${TS_URL} - -DEXPECTED_SHA256=${TS_SHA256} - -DTARGET=${NAME} - -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR} - -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake - PATCH_COMMAND ${CMAKE_COMMAND} -E copy + PREFIX ${DEPS_BUILD_DIR} + URL ${TS_URL} + URL_HASH SHA256=${TS_SHA256} + DOWNLOAD_NO_PROGRESS TRUE + DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/${NAME} + CMAKE_CACHE_ARGS + -DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES} + PATCH_COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/cmake/${TS_CMAKE_FILE} ${DEPS_BUILD_DIR}/src/${NAME}/CMakeLists.txt - CMAKE_ARGS - -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} - -DPARSERLANG=${LANG}) + CMAKE_ARGS + -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} + -DPARSERLANG=${LANG}) endfunction() BuildTSParser(c ${TREESITTER_C_URL} ${TREESITTER_C_SHA256} TreesitterParserCMakeLists.txt) diff --git a/cmake.deps/cmake/BuildUnibilium.cmake b/cmake.deps/cmake/BuildUnibilium.cmake index 9009a4f6f3..2aaba4abab 100644 --- a/cmake.deps/cmake/BuildUnibilium.cmake +++ b/cmake.deps/cmake/BuildUnibilium.cmake @@ -19,15 +19,9 @@ endif() ExternalProject_Add(unibilium PREFIX ${DEPS_BUILD_DIR} URL ${UNIBILIUM_URL} + URL_HASH SHA256=${UNIBILIUM_SHA256} + DOWNLOAD_NO_PROGRESS TRUE DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/unibilium - DOWNLOAD_COMMAND ${CMAKE_COMMAND} - -DPREFIX=${DEPS_BUILD_DIR} - -DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/unibilium - -DURL=${UNIBILIUM_URL} - -DEXPECTED_SHA256=${UNIBILIUM_SHA256} - -DTARGET=unibilium - -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR} - -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake CONFIGURE_COMMAND "${UNIBILIUM_CONFIGURE_COMMAND}" BUILD_COMMAND "${UNIBILIUM_BUILD_COMMAND}" INSTALL_COMMAND "${UNIBILIUM_INSTALL_COMMAND}") diff --git a/cmake.deps/cmake/DownloadAndExtractFile.cmake b/cmake.deps/cmake/DownloadAndExtractFile.cmake deleted file mode 100644 index abb1ddc81a..0000000000 --- a/cmake.deps/cmake/DownloadAndExtractFile.cmake +++ /dev/null @@ -1,195 +0,0 @@ -if(NOT DEFINED PREFIX) - message(FATAL_ERROR "PREFIX must be defined.") -endif() - -if(NOT DEFINED URL) - message(FATAL_ERROR "URL must be defined.") -endif() - -if(NOT DEFINED DOWNLOAD_DIR) - message(FATAL_ERROR "DOWNLOAD_DIR must be defined.") -endif() - -if(NOT DEFINED EXPECTED_SHA256) - message(FATAL_ERROR "EXPECTED_SHA256 must be defined.") -endif() - -if(NOT DEFINED TARGET) - message(FATAL_ERROR "TARGET must be defined.") -endif() - -if(NOT DEFINED SRC_DIR) - set(SRC_DIR ${PREFIX}/src/${TARGET}) -endif() -set(BINARY_DIR ${PREFIX}/src/${TARGET}-build) - -# Check whether the source has been downloaded. If true, skip it. -# Useful for external downloads like homebrew. -if(USE_EXISTING_SRC_DIR) - if(EXISTS "${SRC_DIR}" AND IS_DIRECTORY "${SRC_DIR}") - file(GLOB EXISTED_FILES "${SRC_DIR}/*") - if(EXISTED_FILES) - message(STATUS "${SRC_DIR} is found and not empty, skipping download and extraction. ") - return() - endif() - endif() - message(FATAL_ERROR "USE_EXISTING_SRC_DIR set to ON, but '${SRC_DIR}' does not exist or is empty.") -endif() - -# Taken from ExternalProject_Add. Let's hope we can drop this one day when -# ExternalProject_Add allows you to disable SHOW_PROGRESS on the file download. -if(TIMEOUT) - set(timeout_args TIMEOUT ${timeout}) - set(timeout_msg "${timeout} seconds") -else() - set(timeout_args "") - set(timeout_msg "none") -endif() - -string(REGEX MATCH "[^/\\?]*$" fname "${URL}") -if(NOT "${fname}" MATCHES "(\\.|=)(bz2|tar|tgz|tar\\.gz|zip)$") - string(REGEX MATCH "([^/\\?]+(\\.|=)(bz2|tar|tgz|tar\\.gz|zip))/.*$" match_result "${URL}") - set(fname "${CMAKE_MATCH_1}") -endif() -if(NOT "${fname}" MATCHES "(\\.|=)(bz2|tar|tgz|tar\\.gz|zip)$") - message(FATAL_ERROR "Could not extract tarball filename from url:\n ${url}") -endif() -string(REPLACE ";" "-" fname "${fname}") - -set(file ${DOWNLOAD_DIR}/${fname}) -message(STATUS "file: ${file}") - -set(EXISTING_SHA256 "") -if(EXISTS ${file}) - file(SHA256 ${file} EXISTING_SHA256) -endif() - -if(NOT EXISTING_SHA256 STREQUAL ${EXPECTED_SHA256}) - message(STATUS "downloading... - src='${URL}' - dst='${file}' - timeout='${timeout_msg}'") - - file(DOWNLOAD ${URL} ${file} - ${timeout_args} - ${hash_args} - STATUS status - LOG log) - - list(GET status 0 status_code) - list(GET status 1 status_string) - - if(NOT status_code EQUAL 0) - # Retry on certain errors, e.g. CURLE_COULDNT_RESOLVE_HOST, which is often - # seen with libtermkey (www.leonerd.org.uk). - if((status_code EQUAL 6) # "Couldn't resolve host name" - OR (status_code EQUAL 7)) # "Couldn't connect to server" - message(STATUS "warning: retrying '${URL}' (${status_string}, status ${status_code})") - execute_process(COMMAND ${CMAKE_COMMAND} -E sleep 10) - file(DOWNLOAD ${URL} ${file} - ${timeout_args} - ${hash_args} - STATUS status - LOG log) - list(GET status 0 status_code) - list(GET status 1 status_string) - endif() - if(NOT status_code EQUAL 0) - message(FATAL_ERROR "error: downloading '${URL}' failed - status_code: ${status_code} - status_string: ${status_string} - log: ${log} - ") - endif() - endif() -endif() - -set(NULL_SHA256 "0000000000000000000000000000000000000000000000000000000000000000") - -# Allow users to use "SKIP" or "skip" as the sha256 to skip checking the hash. -# You can still use the all zeros hash too. -if((EXPECTED_SHA256 STREQUAL "SKIP") OR (EXPECTED_SHA256 STREQUAL "skip")) - set(EXPECTED_SHA256 ${NULL_SHA256}) -endif() - -# We could avoid computing the SHA256 entirely if a NULL_SHA256 was given, -# but we want to warn users of an empty file. -file(SHA256 ${file} ACTUAL_SHA256) -if(ACTUAL_SHA256 STREQUAL "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855") - # File was empty. It's likely due to lack of SSL support. - message(FATAL_ERROR - "Failed to download ${URL}. The file is empty and likely means CMake " - "was built without SSL support. Please use a version of CMake with " - "proper SSL support. See " - "https://github.com/neovim/neovim/wiki/Building-Neovim#build-prerequisites " - "for more information.") -elseif((NOT EXPECTED_SHA256 STREQUAL NULL_SHA256) AND - (NOT EXPECTED_SHA256 STREQUAL ACTUAL_SHA256)) - # Wasn't a NULL SHA256 and we didn't match, so we fail. - message(FATAL_ERROR - "Failed to download ${URL}. Expected a SHA256 of " - "${EXPECTED_SHA256} but got ${ACTUAL_SHA256} instead.") -endif() - -message(STATUS "downloading... done") - -# Slurped from a generated extract-TARGET.cmake file. -message(STATUS "extracting... - src='${file}' - dst='${SRC_DIR}'") - -if(NOT EXISTS "${file}") - message(FATAL_ERROR "error: file to extract does not exist: '${file}'") -endif() - -# Prepare a space for extracting: -# -set(i 1234) -while(EXISTS "${SRC_DIR}/../ex-${TARGET}${i}") - math(EXPR i "${i} + 1") -endwhile() -set(ut_dir "${SRC_DIR}/../ex-${TARGET}${i}") -file(MAKE_DIRECTORY "${ut_dir}") - -# Extract it: -# -message(STATUS "extracting... [tar xfz]") -execute_process(COMMAND ${CMAKE_COMMAND} -E tar xfz ${file} - WORKING_DIRECTORY ${ut_dir} - RESULT_VARIABLE rv) - -if(NOT rv EQUAL 0) - message(STATUS "extracting... [error clean up]") - file(REMOVE_RECURSE "${ut_dir}") - message(FATAL_ERROR "error: extract of '${file}' failed") -endif() - -# Analyze what came out of the tar file: -# -message(STATUS "extracting... [analysis]") -file(GLOB contents "${ut_dir}/*") -list(LENGTH contents n) -if(NOT n EQUAL 1 OR NOT IS_DIRECTORY "${contents}") - set(contents "${ut_dir}") -endif() - -# Move "the one" directory to the final directory: -# -message(STATUS "extracting... [rename]") -file(REMOVE_RECURSE ${SRC_DIR}) -get_filename_component(contents ${contents} ABSOLUTE) -file(RENAME ${contents} ${SRC_DIR}) - -# Remove any existing BINARY_DIR, to force a new build. -# Without this a necessary output (e.g. libluv.a) might not be updated/installed. -# -message(STATUS "extracting... [clean binary dir]") -file(REMOVE_RECURSE ${BINARY_DIR}) -file(MAKE_DIRECTORY ${BINARY_DIR}) - -# Clean up: -# -message(STATUS "extracting... [clean up]") -file(REMOVE_RECURSE "${ut_dir}") - -message(STATUS "extracting... done") diff --git a/cmake.deps/cmake/GetBinaryDeps.cmake b/cmake.deps/cmake/GetBinaryDeps.cmake index 04e3f95a29..f179e36bcf 100644 --- a/cmake.deps/cmake/GetBinaryDeps.cmake +++ b/cmake.deps/cmake/GetBinaryDeps.cmake @@ -25,15 +25,9 @@ function(GetBinaryDep) ExternalProject_Add(${_gettool_TARGET} PREFIX ${DEPS_BUILD_DIR} URL ${URL} + URL_HASH SHA256=${HASH} + DOWNLOAD_NO_PROGRESS TRUE DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR} - DOWNLOAD_COMMAND ${CMAKE_COMMAND} - -DPREFIX=${DEPS_BUILD_DIR} - -DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR} - -DURL=${URL} - -DEXPECTED_SHA256=${HASH} - -DTARGET=${_gettool_TARGET} - -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR} - -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake CONFIGURE_COMMAND "" BUILD_IN_SOURCE 1 BUILD_COMMAND "" -- cgit From fbc66d798ce834c4ba05360c3c07ce7af40d6fc9 Mon Sep 17 00:00:00 2001 From: dundargoc Date: Sat, 1 Oct 2022 14:54:58 +0200 Subject: build: define EP_PREFIX property This is just to avoid the boilerplate of definining PREFIX for each dependency. --- cmake.deps/cmake/BuildGettext.cmake | 1 - cmake.deps/cmake/BuildLibiconv.cmake | 1 - cmake.deps/cmake/BuildLibtermkey.cmake | 1 - cmake.deps/cmake/BuildLibuv.cmake | 1 - cmake.deps/cmake/BuildLibvterm.cmake | 1 - cmake.deps/cmake/BuildLua.cmake | 1 - cmake.deps/cmake/BuildLuajit.cmake | 1 - cmake.deps/cmake/BuildLuarocks.cmake | 1 - cmake.deps/cmake/BuildLuv.cmake | 2 -- cmake.deps/cmake/BuildMsgpack.cmake | 1 - cmake.deps/cmake/BuildTreesitter.cmake | 1 - cmake.deps/cmake/BuildTreesitterParsers.cmake | 1 - cmake.deps/cmake/BuildUnibilium.cmake | 1 - cmake.deps/cmake/GetBinaryDeps.cmake | 1 - 14 files changed, 15 deletions(-) (limited to 'cmake.deps/cmake') diff --git a/cmake.deps/cmake/BuildGettext.cmake b/cmake.deps/cmake/BuildGettext.cmake index f2fdd68e28..4bcfeea32a 100644 --- a/cmake.deps/cmake/BuildGettext.cmake +++ b/cmake.deps/cmake/BuildGettext.cmake @@ -1,6 +1,5 @@ if(MSVC) ExternalProject_Add(gettext - PREFIX ${DEPS_BUILD_DIR} URL ${GETTEXT_URL} URL_HASH SHA256=${GETTEXT_SHA256} DOWNLOAD_NO_PROGRESS TRUE diff --git a/cmake.deps/cmake/BuildLibiconv.cmake b/cmake.deps/cmake/BuildLibiconv.cmake index d67b50c3a5..b887e4fbbe 100644 --- a/cmake.deps/cmake/BuildLibiconv.cmake +++ b/cmake.deps/cmake/BuildLibiconv.cmake @@ -1,6 +1,5 @@ if(MSVC) ExternalProject_Add(libiconv - PREFIX ${DEPS_BUILD_DIR} URL ${LIBICONV_URL} URL_HASH SHA256=${LIBICONV_SHA256} DOWNLOAD_NO_PROGRESS TRUE diff --git a/cmake.deps/cmake/BuildLibtermkey.cmake b/cmake.deps/cmake/BuildLibtermkey.cmake index 3a571ccdc4..604efb7504 100644 --- a/cmake.deps/cmake/BuildLibtermkey.cmake +++ b/cmake.deps/cmake/BuildLibtermkey.cmake @@ -23,7 +23,6 @@ else() endif() ExternalProject_Add(libtermkey - PREFIX ${DEPS_BUILD_DIR} URL ${LIBTERMKEY_URL} URL_HASH SHA256=${LIBTERMKEY_SHA256} DOWNLOAD_NO_PROGRESS TRUE diff --git a/cmake.deps/cmake/BuildLibuv.cmake b/cmake.deps/cmake/BuildLibuv.cmake index 713cf2e4eb..63cc22ee5b 100644 --- a/cmake.deps/cmake/BuildLibuv.cmake +++ b/cmake.deps/cmake/BuildLibuv.cmake @@ -1,5 +1,4 @@ ExternalProject_Add(libuv - PREFIX ${DEPS_BUILD_DIR} URL ${LIBUV_URL} URL_HASH SHA256=${LIBUV_SHA256} DOWNLOAD_NO_PROGRESS TRUE diff --git a/cmake.deps/cmake/BuildLibvterm.cmake b/cmake.deps/cmake/BuildLibvterm.cmake index d2c04d5b28..85dfed732d 100644 --- a/cmake.deps/cmake/BuildLibvterm.cmake +++ b/cmake.deps/cmake/BuildLibvterm.cmake @@ -25,7 +25,6 @@ else() endif() ExternalProject_Add(libvterm - PREFIX ${DEPS_BUILD_DIR} URL ${LIBVTERM_URL} URL_HASH SHA256=${LIBVTERM_SHA256} DOWNLOAD_NO_PROGRESS TRUE diff --git a/cmake.deps/cmake/BuildLua.cmake b/cmake.deps/cmake/BuildLua.cmake index ccfcc01474..fcc2f8ca25 100644 --- a/cmake.deps/cmake/BuildLua.cmake +++ b/cmake.deps/cmake/BuildLua.cmake @@ -43,7 +43,6 @@ set(LUA_INSTALL_TOP_ARG "INSTALL_TOP=${DEPS_INSTALL_DIR}") message(STATUS "Lua target is ${LUA_TARGET}") ExternalProject_Add(lua - PREFIX ${DEPS_BUILD_DIR} URL ${LUA_URL} URL_HASH SHA256=${LUA_SHA256} DOWNLOAD_NO_PROGRESS TRUE diff --git a/cmake.deps/cmake/BuildLuajit.cmake b/cmake.deps/cmake/BuildLuajit.cmake index 05a15a8bb6..3a853316af 100644 --- a/cmake.deps/cmake/BuildLuajit.cmake +++ b/cmake.deps/cmake/BuildLuajit.cmake @@ -16,7 +16,6 @@ function(BuildLuajit) endif() ExternalProject_Add(${_luajit_TARGET} - PREFIX ${DEPS_BUILD_DIR} URL ${LUAJIT_URL} URL_HASH SHA256=${LUAJIT_SHA256} DOWNLOAD_NO_PROGRESS TRUE diff --git a/cmake.deps/cmake/BuildLuarocks.cmake b/cmake.deps/cmake/BuildLuarocks.cmake index 33fd995839..85188c8656 100644 --- a/cmake.deps/cmake/BuildLuarocks.cmake +++ b/cmake.deps/cmake/BuildLuarocks.cmake @@ -82,7 +82,6 @@ else() endif() ExternalProject_Add(luarocks - PREFIX ${DEPS_BUILD_DIR} URL ${LUAROCKS_URL} URL_HASH SHA256=${LUAROCKS_SHA256} DOWNLOAD_NO_PROGRESS TRUE diff --git a/cmake.deps/cmake/BuildLuv.cmake b/cmake.deps/cmake/BuildLuv.cmake index 6b0360e363..9fa56d32c3 100644 --- a/cmake.deps/cmake/BuildLuv.cmake +++ b/cmake.deps/cmake/BuildLuv.cmake @@ -56,7 +56,6 @@ else() endif() ExternalProject_Add(lua-compat-5.3 - PREFIX ${DEPS_BUILD_DIR} URL ${LUA_COMPAT53_URL} URL_HASH SHA256=${LUA_COMPAT53_SHA256} DOWNLOAD_NO_PROGRESS TRUE @@ -66,7 +65,6 @@ ExternalProject_Add(lua-compat-5.3 INSTALL_COMMAND "") ExternalProject_Add(luv-static - PREFIX ${DEPS_BUILD_DIR} DEPENDS lua-compat-5.3 URL ${LUV_URL} URL_HASH SHA256=${LUV_SHA256} diff --git a/cmake.deps/cmake/BuildMsgpack.cmake b/cmake.deps/cmake/BuildMsgpack.cmake index d2a0dfd132..da62741811 100644 --- a/cmake.deps/cmake/BuildMsgpack.cmake +++ b/cmake.deps/cmake/BuildMsgpack.cmake @@ -22,7 +22,6 @@ if(MSVC) endif() ExternalProject_Add(msgpack - PREFIX ${DEPS_BUILD_DIR} URL ${MSGPACK_URL} URL_HASH SHA256=${MSGPACK_SHA256} DOWNLOAD_NO_PROGRESS TRUE diff --git a/cmake.deps/cmake/BuildTreesitter.cmake b/cmake.deps/cmake/BuildTreesitter.cmake index aa545b3a3b..e24c112aaf 100644 --- a/cmake.deps/cmake/BuildTreesitter.cmake +++ b/cmake.deps/cmake/BuildTreesitter.cmake @@ -18,7 +18,6 @@ else() endif() ExternalProject_Add(tree-sitter - PREFIX ${DEPS_BUILD_DIR} URL ${TREESITTER_URL} URL_HASH SHA256=${TREESITTER_SHA256} DOWNLOAD_NO_PROGRESS TRUE diff --git a/cmake.deps/cmake/BuildTreesitterParsers.cmake b/cmake.deps/cmake/BuildTreesitterParsers.cmake index ad45491861..9e3c37337e 100644 --- a/cmake.deps/cmake/BuildTreesitterParsers.cmake +++ b/cmake.deps/cmake/BuildTreesitterParsers.cmake @@ -1,7 +1,6 @@ function(BuildTSParser LANG TS_URL TS_SHA256 TS_CMAKE_FILE) set(NAME treesitter-${LANG}) ExternalProject_Add(${NAME} - PREFIX ${DEPS_BUILD_DIR} URL ${TS_URL} URL_HASH SHA256=${TS_SHA256} DOWNLOAD_NO_PROGRESS TRUE diff --git a/cmake.deps/cmake/BuildUnibilium.cmake b/cmake.deps/cmake/BuildUnibilium.cmake index 2aaba4abab..8322195539 100644 --- a/cmake.deps/cmake/BuildUnibilium.cmake +++ b/cmake.deps/cmake/BuildUnibilium.cmake @@ -17,7 +17,6 @@ else() endif() ExternalProject_Add(unibilium - PREFIX ${DEPS_BUILD_DIR} URL ${UNIBILIUM_URL} URL_HASH SHA256=${UNIBILIUM_SHA256} DOWNLOAD_NO_PROGRESS TRUE diff --git a/cmake.deps/cmake/GetBinaryDeps.cmake b/cmake.deps/cmake/GetBinaryDeps.cmake index f179e36bcf..3a2e38250a 100644 --- a/cmake.deps/cmake/GetBinaryDeps.cmake +++ b/cmake.deps/cmake/GetBinaryDeps.cmake @@ -23,7 +23,6 @@ function(GetBinaryDep) endif() ExternalProject_Add(${_gettool_TARGET} - PREFIX ${DEPS_BUILD_DIR} URL ${URL} URL_HASH SHA256=${HASH} DOWNLOAD_NO_PROGRESS TRUE -- cgit From 61da959bb401b83454be0748b7a8b482f1be76e5 Mon Sep 17 00:00:00 2001 From: James McCoy Date: Thu, 6 Oct 2022 09:14:38 -0400 Subject: build(deps): restore support for USE_EXISTING_SRC_DIR (#20491) 59d5f692f removed cmake.deps/cmake/DownloadAndExtractFile.cmake and support for USE_EXISTING_SRC_DIR. The Ubuntu nightly PPA still relies on USE_EXISTING_SRC_DIR functionality since it can't access the network during the build. Supplying an empty value for ExternalProject_Add()'s URL value appears to provide the needed mechanism to avoid re-downloading when the sources are already present. This is undocumented behavior, though, so it may break in the future. Now, if USE_EXISTING_SRC_DIR is set, the ExternalProject's URL variable is unset, preventing the download and erroring out if the source doesn't actually exist. --- cmake.deps/cmake/BuildGettext.cmake | 3 +++ cmake.deps/cmake/BuildLibiconv.cmake | 3 +++ cmake.deps/cmake/BuildLibtermkey.cmake | 3 +++ cmake.deps/cmake/BuildLibuv.cmake | 3 +++ cmake.deps/cmake/BuildLibvterm.cmake | 3 +++ cmake.deps/cmake/BuildLua.cmake | 3 +++ cmake.deps/cmake/BuildLuajit.cmake | 3 +++ cmake.deps/cmake/BuildLuarocks.cmake | 3 +++ cmake.deps/cmake/BuildLuv.cmake | 6 ++++++ cmake.deps/cmake/BuildMsgpack.cmake | 3 +++ cmake.deps/cmake/BuildTreesitter.cmake | 3 +++ cmake.deps/cmake/BuildTreesitterParsers.cmake | 3 +++ cmake.deps/cmake/BuildUnibilium.cmake | 3 +++ cmake.deps/cmake/GetBinaryDeps.cmake | 3 +++ 14 files changed, 45 insertions(+) (limited to 'cmake.deps/cmake') diff --git a/cmake.deps/cmake/BuildGettext.cmake b/cmake.deps/cmake/BuildGettext.cmake index 4bcfeea32a..aecd5da626 100644 --- a/cmake.deps/cmake/BuildGettext.cmake +++ b/cmake.deps/cmake/BuildGettext.cmake @@ -1,4 +1,7 @@ if(MSVC) + if(USE_EXISTING_SRC_DIR) + unset(GETTEXT_URL) + endif() ExternalProject_Add(gettext URL ${GETTEXT_URL} URL_HASH SHA256=${GETTEXT_SHA256} diff --git a/cmake.deps/cmake/BuildLibiconv.cmake b/cmake.deps/cmake/BuildLibiconv.cmake index b887e4fbbe..26d9b02e77 100644 --- a/cmake.deps/cmake/BuildLibiconv.cmake +++ b/cmake.deps/cmake/BuildLibiconv.cmake @@ -1,4 +1,7 @@ if(MSVC) + if(USE_EXISTING_SRC_DIR) + unset(LIBICONV_URL) + endif() ExternalProject_Add(libiconv URL ${LIBICONV_URL} URL_HASH SHA256=${LIBICONV_SHA256} diff --git a/cmake.deps/cmake/BuildLibtermkey.cmake b/cmake.deps/cmake/BuildLibtermkey.cmake index 604efb7504..1e0fb5d36a 100644 --- a/cmake.deps/cmake/BuildLibtermkey.cmake +++ b/cmake.deps/cmake/BuildLibtermkey.cmake @@ -22,6 +22,9 @@ else() CFLAGS=-fPIC LDFLAGS+=-static ${DEFAULT_MAKE_CFLAGS} install) endif() +if(USE_EXISTING_SRC_DIR) + unset(LIBTERMKEY_URL) +endif() ExternalProject_Add(libtermkey URL ${LIBTERMKEY_URL} URL_HASH SHA256=${LIBTERMKEY_SHA256} diff --git a/cmake.deps/cmake/BuildLibuv.cmake b/cmake.deps/cmake/BuildLibuv.cmake index 63cc22ee5b..3f7d1a0aa9 100644 --- a/cmake.deps/cmake/BuildLibuv.cmake +++ b/cmake.deps/cmake/BuildLibuv.cmake @@ -1,3 +1,6 @@ +if(USE_EXISTING_SRC_DIR) + unset(LIBUV_URL) +endif() ExternalProject_Add(libuv URL ${LIBUV_URL} URL_HASH SHA256=${LIBUV_SHA256} diff --git a/cmake.deps/cmake/BuildLibvterm.cmake b/cmake.deps/cmake/BuildLibvterm.cmake index 85dfed732d..dffa545638 100644 --- a/cmake.deps/cmake/BuildLibvterm.cmake +++ b/cmake.deps/cmake/BuildLibvterm.cmake @@ -24,6 +24,9 @@ else() install) endif() +if(USE_EXISTING_SRC_DIR) + unset(LIBVTERM_URL) +endif() ExternalProject_Add(libvterm URL ${LIBVTERM_URL} URL_HASH SHA256=${LIBVTERM_SHA256} diff --git a/cmake.deps/cmake/BuildLua.cmake b/cmake.deps/cmake/BuildLua.cmake index fcc2f8ca25..b5ac8368a6 100644 --- a/cmake.deps/cmake/BuildLua.cmake +++ b/cmake.deps/cmake/BuildLua.cmake @@ -42,6 +42,9 @@ set(LUA_INSTALL_TOP_ARG "INSTALL_TOP=${DEPS_INSTALL_DIR}") message(STATUS "Lua target is ${LUA_TARGET}") +if(USE_EXISTING_SRC_DIR) + unset(LUA_URL) +endif() ExternalProject_Add(lua URL ${LUA_URL} URL_HASH SHA256=${LUA_SHA256} diff --git a/cmake.deps/cmake/BuildLuajit.cmake b/cmake.deps/cmake/BuildLuajit.cmake index 3a853316af..1476ac31f4 100644 --- a/cmake.deps/cmake/BuildLuajit.cmake +++ b/cmake.deps/cmake/BuildLuajit.cmake @@ -15,6 +15,9 @@ function(BuildLuajit) set(_luajit_TARGET "luajit") endif() + if(USE_EXISTING_SRC_DIR) + unset(LUAJIT_URL) + endif() ExternalProject_Add(${_luajit_TARGET} URL ${LUAJIT_URL} URL_HASH SHA256=${LUAJIT_SHA256} diff --git a/cmake.deps/cmake/BuildLuarocks.cmake b/cmake.deps/cmake/BuildLuarocks.cmake index 85188c8656..d0b4a8e7d1 100644 --- a/cmake.deps/cmake/BuildLuarocks.cmake +++ b/cmake.deps/cmake/BuildLuarocks.cmake @@ -81,6 +81,9 @@ else() message(FATAL_ERROR "Trying to build luarocks in an unsupported system ${CMAKE_SYSTEM_NAME}/${CMAKE_C_COMPILER_ID}") endif() +if(USE_EXISTING_SRC_DIR) + unset(LUAROCKS_URL) +endif() ExternalProject_Add(luarocks URL ${LUAROCKS_URL} URL_HASH SHA256=${LUAROCKS_SHA256} diff --git a/cmake.deps/cmake/BuildLuv.cmake b/cmake.deps/cmake/BuildLuv.cmake index 9fa56d32c3..1a599a9ee2 100644 --- a/cmake.deps/cmake/BuildLuv.cmake +++ b/cmake.deps/cmake/BuildLuv.cmake @@ -55,6 +55,9 @@ else() endif() endif() +if(USE_EXISTING_SRC_DIR) + unset(LUA_COMPAT53_URL) +endif() ExternalProject_Add(lua-compat-5.3 URL ${LUA_COMPAT53_URL} URL_HASH SHA256=${LUA_COMPAT53_SHA256} @@ -64,6 +67,9 @@ ExternalProject_Add(lua-compat-5.3 BUILD_COMMAND "" INSTALL_COMMAND "") +if(USE_EXISTING_SRC_DIR) + unset(LUV_URL) +endif() ExternalProject_Add(luv-static DEPENDS lua-compat-5.3 URL ${LUV_URL} diff --git a/cmake.deps/cmake/BuildMsgpack.cmake b/cmake.deps/cmake/BuildMsgpack.cmake index da62741811..b59d98159d 100644 --- a/cmake.deps/cmake/BuildMsgpack.cmake +++ b/cmake.deps/cmake/BuildMsgpack.cmake @@ -21,6 +21,9 @@ if(MSVC) -DCMAKE_GENERATOR=${CMAKE_GENERATOR}) endif() +if(USE_EXISTING_SRC_DIR) + unset(MSGPACK_URL) +endif() ExternalProject_Add(msgpack URL ${MSGPACK_URL} URL_HASH SHA256=${MSGPACK_SHA256} diff --git a/cmake.deps/cmake/BuildTreesitter.cmake b/cmake.deps/cmake/BuildTreesitter.cmake index e24c112aaf..c3ea02014f 100644 --- a/cmake.deps/cmake/BuildTreesitter.cmake +++ b/cmake.deps/cmake/BuildTreesitter.cmake @@ -17,6 +17,9 @@ else() ${MAKE_PRG} CC=${DEPS_C_COMPILER} PREFIX=${DEPS_INSTALL_DIR} install) endif() +if(USE_EXISTING_SRC_DIR) + unset(TREESITTER_URL) +endif() ExternalProject_Add(tree-sitter URL ${TREESITTER_URL} URL_HASH SHA256=${TREESITTER_SHA256} diff --git a/cmake.deps/cmake/BuildTreesitterParsers.cmake b/cmake.deps/cmake/BuildTreesitterParsers.cmake index 9e3c37337e..ead039aae6 100644 --- a/cmake.deps/cmake/BuildTreesitterParsers.cmake +++ b/cmake.deps/cmake/BuildTreesitterParsers.cmake @@ -1,5 +1,8 @@ function(BuildTSParser LANG TS_URL TS_SHA256 TS_CMAKE_FILE) set(NAME treesitter-${LANG}) + if(USE_EXISTING_SRC_DIR) + unset(TS_URL) + endif() ExternalProject_Add(${NAME} URL ${TS_URL} URL_HASH SHA256=${TS_SHA256} diff --git a/cmake.deps/cmake/BuildUnibilium.cmake b/cmake.deps/cmake/BuildUnibilium.cmake index 8322195539..cc56499edb 100644 --- a/cmake.deps/cmake/BuildUnibilium.cmake +++ b/cmake.deps/cmake/BuildUnibilium.cmake @@ -16,6 +16,9 @@ else() set(UNIBILIUM_INSTALL_COMMAND ${MAKE_PRG} PREFIX=${DEPS_INSTALL_DIR} install) endif() +if(USE_EXISTING_SRC_DIR) + unset(UNIBILIUM_URL) +endif() ExternalProject_Add(unibilium URL ${UNIBILIUM_URL} URL_HASH SHA256=${UNIBILIUM_SHA256} diff --git a/cmake.deps/cmake/GetBinaryDeps.cmake b/cmake.deps/cmake/GetBinaryDeps.cmake index 3a2e38250a..da4376998b 100644 --- a/cmake.deps/cmake/GetBinaryDeps.cmake +++ b/cmake.deps/cmake/GetBinaryDeps.cmake @@ -22,6 +22,9 @@ function(GetBinaryDep) message(FATAL_ERROR "${URL_VARNAME} and ${HASH_VARNAME} must be set") endif() + if(USE_EXISTING_SRC_DIR) + unset(URL) + endif() ExternalProject_Add(${_gettool_TARGET} URL ${URL} URL_HASH SHA256=${HASH} -- cgit From 3ddd99ec64dcf4b5df069c3a88584accb9848da5 Mon Sep 17 00:00:00 2001 From: Wei Tang Date: Mon, 10 Oct 2022 23:51:10 +0800 Subject: build(deps): add build type for libuv (#20575) Problem: Build type is not set in BuildLibuv.cmake, so libuv is always built for Debug type. Solution: Add build type for libuv. --- cmake.deps/cmake/BuildLibuv.cmake | 1 + 1 file changed, 1 insertion(+) (limited to 'cmake.deps/cmake') diff --git a/cmake.deps/cmake/BuildLibuv.cmake b/cmake.deps/cmake/BuildLibuv.cmake index 3f7d1a0aa9..c21e166d95 100644 --- a/cmake.deps/cmake/BuildLibuv.cmake +++ b/cmake.deps/cmake/BuildLibuv.cmake @@ -11,6 +11,7 @@ ExternalProject_Add(libuv -DBUILD_TESTING=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DLIBUV_BUILD_SHARED=OFF + ${BUILD_TYPE_STRING} CMAKE_CACHE_ARGS -DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES} DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/libuv) -- cgit From 8f0b94b36d4d6687712ccfc525284f1fac58d2f6 Mon Sep 17 00:00:00 2001 From: Wei Tang Date: Tue, 11 Oct 2022 08:46:34 +0800 Subject: build(deps): disable shared library for libvterm. (#20566) build(deps): disable shared library for libvterm Problem: Cannot build both static and share libraries for libvterm under Windows. The static and shared library would have the same name "vterm.lib", thus there would be multiple rules to build the same target. Solution: Disable shared library for libvterm. This makes it possible to use Ninja on Windows to build dependencies (2x speedup!). But not for Release builds yet. Co-authored-by: Wei Tang --- cmake.deps/cmake/LibvtermCMakeLists.txt | 8 -------- 1 file changed, 8 deletions(-) (limited to 'cmake.deps/cmake') diff --git a/cmake.deps/cmake/LibvtermCMakeLists.txt b/cmake.deps/cmake/LibvtermCMakeLists.txt index ff1d2d6b79..d7ec9eacad 100644 --- a/cmake.deps/cmake/LibvtermCMakeLists.txt +++ b/cmake.deps/cmake/LibvtermCMakeLists.txt @@ -41,14 +41,6 @@ file(GLOB VTERM_SOURCES ${CMAKE_SOURCE_DIR}/src/*.c) add_library(vterm ${VTERM_SOURCES} ${TBL_FILES_HEADERS}) install(TARGETS vterm ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) -add_library(vterm-shared SHARED ${VTERM_SOURCES} ${TBL_FILES_HEADERS}) -set_target_properties(vterm-shared PROPERTIES - OUTPUT_NAME vterm - SOVERSION 0) -install(TARGETS vterm-shared - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) - install(FILES include/vterm.h include/vterm_keycodes.h DESTINATION include) -- cgit From bc7daddaf00e50bb3c985b2613763045307d159b Mon Sep 17 00:00:00 2001 From: dundargoc Date: Fri, 21 Oct 2022 11:37:19 +0200 Subject: build: rely on default cmake installation if possible The default cmake installation process for dependencies that use cmake on all platforms is in general more robust and less verbose, so we rely on that if possible. --- cmake.deps/cmake/BuildGettext.cmake | 20 +++++++++----------- cmake.deps/cmake/BuildLibiconv.cmake | 16 +++++++--------- cmake.deps/cmake/BuildMsgpack.cmake | 9 +++------ 3 files changed, 19 insertions(+), 26 deletions(-) (limited to 'cmake.deps/cmake') diff --git a/cmake.deps/cmake/BuildGettext.cmake b/cmake.deps/cmake/BuildGettext.cmake index aecd5da626..4ba1f46d2e 100644 --- a/cmake.deps/cmake/BuildGettext.cmake +++ b/cmake.deps/cmake/BuildGettext.cmake @@ -7,18 +7,16 @@ if(MSVC) URL_HASH SHA256=${GETTEXT_SHA256} DOWNLOAD_NO_PROGRESS TRUE DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/gettext - CONFIGURE_COMMAND ${CMAKE_COMMAND} -E copy + PATCH_COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/cmake/GettextCMakeLists.txt - ${DEPS_BUILD_DIR}/src/gettext/CMakeLists.txt - COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/gettext - -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} - ${BUILD_TYPE_STRING} - -DCMAKE_GENERATOR=${CMAKE_GENERATOR} - -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} - -DLIBICONV_INCLUDE_DIRS=${DEPS_INSTALL_DIR}/include - -DLIBICONV_LIBRARIES=${DEPS_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}libcharset${CMAKE_STATIC_LIBRARY_SUFFIX}$${DEPS_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}libiconv${CMAKE_STATIC_LIBRARY_SUFFIX} - BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $ - INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config $) + ${DEPS_BUILD_DIR}/src/gettext/CMakeLists.txt + CMAKE_ARGS + -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} + ${BUILD_TYPE_STRING} + -DCMAKE_GENERATOR=${CMAKE_GENERATOR} + -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} + -DLIBICONV_INCLUDE_DIRS=${DEPS_INSTALL_DIR}/include + -DLIBICONV_LIBRARIES=${DEPS_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}libcharset${CMAKE_STATIC_LIBRARY_SUFFIX}$${DEPS_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}libiconv${CMAKE_STATIC_LIBRARY_SUFFIX}) else() message(FATAL_ERROR "Trying to build gettext in an unsupported system ${CMAKE_SYSTEM_NAME}/${CMAKE_C_COMPILER_ID}") endif() diff --git a/cmake.deps/cmake/BuildLibiconv.cmake b/cmake.deps/cmake/BuildLibiconv.cmake index 26d9b02e77..382aae3df7 100644 --- a/cmake.deps/cmake/BuildLibiconv.cmake +++ b/cmake.deps/cmake/BuildLibiconv.cmake @@ -7,16 +7,14 @@ if(MSVC) URL_HASH SHA256=${LIBICONV_SHA256} DOWNLOAD_NO_PROGRESS TRUE DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/libiconv - CONFIGURE_COMMAND ${CMAKE_COMMAND} -E copy + PATCH_COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/cmake/LibiconvCMakeLists.txt - ${DEPS_BUILD_DIR}/src/libiconv/CMakeLists.txt - COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/libiconv - -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} - ${BUILD_TYPE_STRING} - -DCMAKE_GENERATOR=${CMAKE_GENERATOR} - -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} - BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $ - INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config $) + ${DEPS_BUILD_DIR}/src/libiconv/CMakeLists.txt + CMAKE_ARGS + -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} + ${BUILD_TYPE_STRING} + -DCMAKE_GENERATOR=${CMAKE_GENERATOR} + -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM}) else() message(FATAL_ERROR "Trying to build libiconv in an unsupported system ${CMAKE_SYSTEM_NAME}/${CMAKE_C_COMPILER_ID}") endif() diff --git a/cmake.deps/cmake/BuildMsgpack.cmake b/cmake.deps/cmake/BuildMsgpack.cmake index b59d98159d..3197ec45a1 100644 --- a/cmake.deps/cmake/BuildMsgpack.cmake +++ b/cmake.deps/cmake/BuildMsgpack.cmake @@ -1,4 +1,4 @@ -set(MSGPACK_CONFIGURE_COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/msgpack +set(MSGPACK_CMAKE_ARGS -DMSGPACK_BUILD_TESTS=OFF -DMSGPACK_BUILD_EXAMPLES=OFF -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} @@ -8,8 +8,7 @@ set(MSGPACK_CONFIGURE_COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/msgpack -DCMAKE_GENERATOR=${CMAKE_GENERATOR}) if(MSVC) - # Same as Unix without fPIC - set(MSGPACK_CONFIGURE_COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/msgpack + set(MSGPACK_CMAKE_ARGS -DMSGPACK_BUILD_TESTS=OFF -DMSGPACK_BUILD_EXAMPLES=OFF -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} @@ -29,9 +28,7 @@ ExternalProject_Add(msgpack URL_HASH SHA256=${MSGPACK_SHA256} DOWNLOAD_NO_PROGRESS TRUE DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/msgpack - CONFIGURE_COMMAND "${MSGPACK_CONFIGURE_COMMAND}" - BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $ - INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config $ + CMAKE_ARGS "${MSGPACK_CMAKE_ARGS}" LIST_SEPARATOR |) list(APPEND THIRD_PARTY_DEPS msgpack) -- cgit From 0f911390744f0836604b70f4ebb496dbe372400d Mon Sep 17 00:00:00 2001 From: dundargoc Date: Fri, 21 Oct 2022 11:47:27 +0200 Subject: build(cmake): add modelines to enable syntax highlighting --- cmake.deps/cmake/GettextCMakeLists.txt | 2 ++ cmake.deps/cmake/LibiconvCMakeLists.txt | 2 ++ cmake.deps/cmake/LibvtermCMakeLists.txt | 2 ++ cmake.deps/cmake/TreesitterCMakeLists.txt | 2 ++ cmake.deps/cmake/TreesitterParserCMakeLists.txt | 2 ++ cmake.deps/cmake/UnibiliumCMakeLists.txt | 2 ++ cmake.deps/cmake/libtermkeyCMakeLists.txt | 2 ++ 7 files changed, 14 insertions(+) (limited to 'cmake.deps/cmake') diff --git a/cmake.deps/cmake/GettextCMakeLists.txt b/cmake.deps/cmake/GettextCMakeLists.txt index d9f251897d..26f060ec08 100644 --- a/cmake.deps/cmake/GettextCMakeLists.txt +++ b/cmake.deps/cmake/GettextCMakeLists.txt @@ -327,3 +327,5 @@ install(TARGETS libintl msgmerge msgfmt xgettext LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + +# vim: set ft=cmake: diff --git a/cmake.deps/cmake/LibiconvCMakeLists.txt b/cmake.deps/cmake/LibiconvCMakeLists.txt index b4ba6b5d7e..f6a23db864 100644 --- a/cmake.deps/cmake/LibiconvCMakeLists.txt +++ b/cmake.deps/cmake/LibiconvCMakeLists.txt @@ -95,3 +95,5 @@ install(TARGETS libcharset libiconv iconv LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + +# vim: set ft=cmake: diff --git a/cmake.deps/cmake/LibvtermCMakeLists.txt b/cmake.deps/cmake/LibvtermCMakeLists.txt index d7ec9eacad..079ad28ba0 100644 --- a/cmake.deps/cmake/LibvtermCMakeLists.txt +++ b/cmake.deps/cmake/LibvtermCMakeLists.txt @@ -82,3 +82,5 @@ if(Perl_FOUND) DEPENDS ${header_path} ${perl_header_path}) endforeach() endif() + +# vim: set ft=cmake: diff --git a/cmake.deps/cmake/TreesitterCMakeLists.txt b/cmake.deps/cmake/TreesitterCMakeLists.txt index e20b47dd74..69372bd2b0 100644 --- a/cmake.deps/cmake/TreesitterCMakeLists.txt +++ b/cmake.deps/cmake/TreesitterCMakeLists.txt @@ -19,3 +19,5 @@ install(FILES include(GNUInstallDirs) install(TARGETS tree-sitter LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) + +# vim: set ft=cmake: diff --git a/cmake.deps/cmake/TreesitterParserCMakeLists.txt b/cmake.deps/cmake/TreesitterParserCMakeLists.txt index be07f00a37..44e4ef160f 100644 --- a/cmake.deps/cmake/TreesitterParserCMakeLists.txt +++ b/cmake.deps/cmake/TreesitterParserCMakeLists.txt @@ -19,3 +19,5 @@ set_target_properties( include_directories(src) install(TARGETS parser LIBRARY DESTINATION lib/nvim/parser) + +# vim: set ft=cmake: diff --git a/cmake.deps/cmake/UnibiliumCMakeLists.txt b/cmake.deps/cmake/UnibiliumCMakeLists.txt index 9112b416fa..0a5d8481a7 100644 --- a/cmake.deps/cmake/UnibiliumCMakeLists.txt +++ b/cmake.deps/cmake/UnibiliumCMakeLists.txt @@ -23,3 +23,5 @@ install(TARGETS unibilium PUBLIC_HEADER ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) + +# vim: set ft=cmake: diff --git a/cmake.deps/cmake/libtermkeyCMakeLists.txt b/cmake.deps/cmake/libtermkeyCMakeLists.txt index 6c02b7549d..b419d38d7b 100644 --- a/cmake.deps/cmake/libtermkeyCMakeLists.txt +++ b/cmake.deps/cmake/libtermkeyCMakeLists.txt @@ -32,3 +32,5 @@ foreach(f ${TESTSOURCES}) target_link_libraries("test_${t}" termkey) add_test("${t}" "test_${t}") endforeach() + +# vim: set ft=cmake: -- cgit From 4c5c6ca8009dd68a68bc31caef509cb15ebef7ca Mon Sep 17 00:00:00 2001 From: dundargoc <33953936+dundargoc@users.noreply.github.com> Date: Fri, 20 Jan 2023 23:48:46 +0100 Subject: build: various cmake fixes (#21902) * build: various cmake refactors and simplifications - Add STATUS keyword to message to ensure messages are shown in the correct order. - Remove DEPS_CXX_COMPILER as we don't rely on C++ for any of our dependencies. - Simplify how msgpack and luv configure options are constructed. - Rely on the default installation for luv instead of manually passing configure, build and install commands. - Simplify return code conditional. * build: remove CMAKE_OSX_ARCHITECTURES_ALT_SEP workaround CMAKE_OSX_ARCHITECTURES_ALT_SEP was defined as a workaround to prevent the shell from interpreting `;`, which CMake uses as a list separator. However, the same thing can be achieved by instead passing CMAKE_OSX_ARCHITECTURES as a cache variable instead, which is a more idiomatic way of achieving the same thing. * build: define CMAKE_BUILD_TYPE before adding it to BUILD_TYPE_STRING The problem with the current setup is that CMAKE_BUILD_TYPE is defined after BUILD_TYPE_STRING. BUILD_TYPE_STRING will then be empty on the first run, meaning that dependencies are built without a build type. However, since CMAKE_BUILD_TYPE is a cache variable its value will persist in subsequent runs. On the second run BUILD_TYPE_STRING will have the correct value, but it's a different value from the ones the dependencies were built with. This will force some dependencies to be built again. Fixes https://github.com/neovim/neovim/issues/21672. --- cmake.deps/cmake/BuildLuv.cmake | 41 ++++++++++++++----------------------- cmake.deps/cmake/BuildMsgpack.cmake | 23 ++++++++------------- 2 files changed, 23 insertions(+), 41 deletions(-) (limited to 'cmake.deps/cmake') diff --git a/cmake.deps/cmake/BuildLuv.cmake b/cmake.deps/cmake/BuildLuv.cmake index 1a599a9ee2..c37a870b3d 100644 --- a/cmake.deps/cmake/BuildLuv.cmake +++ b/cmake.deps/cmake/BuildLuv.cmake @@ -1,13 +1,12 @@ -set(LUV_SRC_DIR ${DEPS_BUILD_DIR}/src/luv) set(LUV_INCLUDE_FLAGS "-I${DEPS_INSTALL_DIR}/include -I${DEPS_INSTALL_DIR}/include/luajit-2.1") -set(LUV_CONFIGURE_COMMAND_COMMON - ${CMAKE_COMMAND} ${LUV_SRC_DIR} +set(LUV_CMAKE_ARGS -DCMAKE_GENERATOR=${CMAKE_GENERATOR} + -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} + -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} ${BUILD_TYPE_STRING} -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} - -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES_ALT_SEP} -DLUA_BUILD_TYPE=System -DLUA_COMPAT53_DIR=${DEPS_BUILD_DIR}/src/lua-compat-5.3 -DWITH_SHARED_LIBUV=ON @@ -16,42 +15,33 @@ set(LUV_CONFIGURE_COMMAND_COMMON -DBUILD_MODULE=OFF) if(USE_BUNDLED_LUAJIT) - list(APPEND LUV_CONFIGURE_COMMAND_COMMON -DWITH_LUA_ENGINE=LuaJit) + list(APPEND LUV_CMAKE_ARGS -DWITH_LUA_ENGINE=LuaJit) elseif(USE_BUNDLED_LUA) - list(APPEND LUV_CONFIGURE_COMMAND_COMMON -DWITH_LUA_ENGINE=Lua) + list(APPEND LUV_CMAKE_ARGS -DWITH_LUA_ENGINE=Lua) else() find_package(LuaJit) if(LUAJIT_FOUND) - list(APPEND LUV_CONFIGURE_COMMAND_COMMON -DWITH_LUA_ENGINE=LuaJit) + list(APPEND LUV_CMAKE_ARGS -DWITH_LUA_ENGINE=LuaJit) else() - list(APPEND LUV_CONFIGURE_COMMAND_COMMON -DWITH_LUA_ENGINE=Lua) + list(APPEND LUV_CMAKE_ARGS -DWITH_LUA_ENGINE=Lua) endif() endif() if(USE_BUNDLED_LIBUV) - set(LUV_CONFIGURE_COMMAND_COMMON - ${LUV_CONFIGURE_COMMAND_COMMON} + list(APPEND LUV_CMAKE_ARGS -DCMAKE_PREFIX_PATH=${DEPS_INSTALL_DIR} -DLIBUV_LIBRARIES=uv_a) endif() if(MSVC) - set(LUV_CONFIGURE_COMMAND - ${LUV_CONFIGURE_COMMAND_COMMON} - -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} - -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} - "-DCMAKE_C_FLAGS:STRING=${LUV_INCLUDE_FLAGS}" - # Make sure we use the same generator, otherwise we may - # accidentally end up using different MSVC runtimes - -DCMAKE_GENERATOR=${CMAKE_GENERATOR}) + list(APPEND LUV_CMAKE_ARGS + "-DCMAKE_C_FLAGS:STRING=${LUV_INCLUDE_FLAGS}") else() - set(LUV_CONFIGURE_COMMAND - ${LUV_CONFIGURE_COMMAND_COMMON} - -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} + list(APPEND LUV_CMAKE_ARGS "-DCMAKE_C_FLAGS:STRING=${LUV_INCLUDE_FLAGS} -fPIC") if(CMAKE_GENERATOR MATCHES "Unix Makefiles" AND (CMAKE_SYSTEM_NAME MATCHES ".*BSD" OR CMAKE_SYSTEM_NAME MATCHES "DragonFly")) - set(LUV_CONFIGURE_COMMAND ${LUV_CONFIGURE_COMMAND} -DCMAKE_MAKE_PROGRAM=gmake) + list(APPEND LUV_CMAKE_ARGS -DCMAKE_MAKE_PROGRAM=gmake) endif() endif() @@ -77,10 +67,9 @@ ExternalProject_Add(luv-static DOWNLOAD_NO_PROGRESS TRUE DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/luv SOURCE_DIR ${DEPS_BUILD_DIR}/src/luv - CONFIGURE_COMMAND "${LUV_CONFIGURE_COMMAND}" - BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $ - INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config $ - LIST_SEPARATOR |) + CMAKE_ARGS ${LUV_CMAKE_ARGS} + CMAKE_CACHE_ARGS + -DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES}) list(APPEND THIRD_PARTY_DEPS luv-static) if(USE_BUNDLED_LUAJIT) diff --git a/cmake.deps/cmake/BuildMsgpack.cmake b/cmake.deps/cmake/BuildMsgpack.cmake index 3197ec45a1..9d112c57b1 100644 --- a/cmake.deps/cmake/BuildMsgpack.cmake +++ b/cmake.deps/cmake/BuildMsgpack.cmake @@ -1,23 +1,15 @@ set(MSGPACK_CMAKE_ARGS - -DMSGPACK_BUILD_TESTS=OFF - -DMSGPACK_BUILD_EXAMPLES=OFF - -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} - -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} - -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES_ALT_SEP} - "-DCMAKE_C_FLAGS:STRING=-fPIC" - -DCMAKE_GENERATOR=${CMAKE_GENERATOR}) - -if(MSVC) - set(MSGPACK_CMAKE_ARGS -DMSGPACK_BUILD_TESTS=OFF -DMSGPACK_BUILD_EXAMPLES=OFF -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} + -DCMAKE_GENERATOR=${CMAKE_GENERATOR} -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} - ${BUILD_TYPE_STRING} - # Make sure we use the same generator, otherwise we may - # accidentally end up using different MSVC runtimes - -DCMAKE_GENERATOR=${CMAKE_GENERATOR}) + ${BUILD_TYPE_STRING}) + +if(NOT MSVC) + list(APPEND MSGPACK_CMAKE_ARGS + "-DCMAKE_C_FLAGS:STRING=-fPIC") endif() if(USE_EXISTING_SRC_DIR) @@ -29,6 +21,7 @@ ExternalProject_Add(msgpack DOWNLOAD_NO_PROGRESS TRUE DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/msgpack CMAKE_ARGS "${MSGPACK_CMAKE_ARGS}" - LIST_SEPARATOR |) + CMAKE_CACHE_ARGS + -DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES}) list(APPEND THIRD_PARTY_DEPS msgpack) -- cgit From 63e67468b45edcc899de24a1940985bccf68f66a Mon Sep 17 00:00:00 2001 From: dundargoc <33953936+dundargoc@users.noreply.github.com> Date: Sun, 22 Jan 2023 18:02:02 +0100 Subject: build: use CMAKE_POSITION_INDEPENDENT_CODE instead of -fPIC (#21947) It's simpler to let cmake figure out what flags to add to each platforms to create position independent code rather than handling it ourselves. Also remove code that sets POSITION_INDEPENDENT_CODE property on SHARED and MODULE libraries, as it's already on by default. --- cmake.deps/cmake/BuildLibvterm.cmake | 6 ++---- cmake.deps/cmake/BuildLuv.cmake | 18 +++++++----------- cmake.deps/cmake/BuildMsgpack.cmake | 6 +----- cmake.deps/cmake/TreesitterParserCMakeLists.txt | 1 - 4 files changed, 10 insertions(+), 21 deletions(-) (limited to 'cmake.deps/cmake') diff --git a/cmake.deps/cmake/BuildLibvterm.cmake b/cmake.deps/cmake/BuildLibvterm.cmake index dffa545638..2e508a8dc8 100644 --- a/cmake.deps/cmake/BuildLibvterm.cmake +++ b/cmake.deps/cmake/BuildLibvterm.cmake @@ -9,10 +9,8 @@ if(WIN32) -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} - -DCMAKE_GENERATOR=${CMAKE_GENERATOR}) - if(NOT MSVC) - list(APPEND LIBVTERM_CONFIGURE_COMMAND "-DCMAKE_C_FLAGS:STRING=-fPIC") - endif() + -DCMAKE_GENERATOR=${CMAKE_GENERATOR} + -DCMAKE_POSITION_INDEPENDENT_CODE=ON) set(LIBVTERM_BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $) set(LIBVTERM_INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config $) else() diff --git a/cmake.deps/cmake/BuildLuv.cmake b/cmake.deps/cmake/BuildLuv.cmake index c37a870b3d..ec0707020a 100644 --- a/cmake.deps/cmake/BuildLuv.cmake +++ b/cmake.deps/cmake/BuildLuv.cmake @@ -12,7 +12,8 @@ set(LUV_CMAKE_ARGS -DWITH_SHARED_LIBUV=ON -DBUILD_SHARED_LIBS=OFF -DBUILD_STATIC_LIBS=ON - -DBUILD_MODULE=OFF) + -DBUILD_MODULE=OFF + -DCMAKE_POSITION_INDEPENDENT_CODE=ON) if(USE_BUNDLED_LUAJIT) list(APPEND LUV_CMAKE_ARGS -DWITH_LUA_ENGINE=LuaJit) @@ -33,16 +34,11 @@ if(USE_BUNDLED_LIBUV) -DLIBUV_LIBRARIES=uv_a) endif() -if(MSVC) - list(APPEND LUV_CMAKE_ARGS - "-DCMAKE_C_FLAGS:STRING=${LUV_INCLUDE_FLAGS}") -else() - list(APPEND LUV_CMAKE_ARGS - "-DCMAKE_C_FLAGS:STRING=${LUV_INCLUDE_FLAGS} -fPIC") - if(CMAKE_GENERATOR MATCHES "Unix Makefiles" AND - (CMAKE_SYSTEM_NAME MATCHES ".*BSD" OR CMAKE_SYSTEM_NAME MATCHES "DragonFly")) - list(APPEND LUV_CMAKE_ARGS -DCMAKE_MAKE_PROGRAM=gmake) - endif() +list(APPEND LUV_CMAKE_ARGS + "-DCMAKE_C_FLAGS:STRING=${LUV_INCLUDE_FLAGS}") +if(CMAKE_GENERATOR MATCHES "Unix Makefiles" AND + (CMAKE_SYSTEM_NAME MATCHES ".*BSD" OR CMAKE_SYSTEM_NAME MATCHES "DragonFly")) + list(APPEND LUV_CMAKE_ARGS -DCMAKE_MAKE_PROGRAM=gmake) endif() if(USE_EXISTING_SRC_DIR) diff --git a/cmake.deps/cmake/BuildMsgpack.cmake b/cmake.deps/cmake/BuildMsgpack.cmake index 9d112c57b1..8347eb6170 100644 --- a/cmake.deps/cmake/BuildMsgpack.cmake +++ b/cmake.deps/cmake/BuildMsgpack.cmake @@ -5,13 +5,9 @@ set(MSGPACK_CMAKE_ARGS -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} -DCMAKE_GENERATOR=${CMAKE_GENERATOR} -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} + -DCMAKE_POSITION_INDEPENDENT_CODE=ON ${BUILD_TYPE_STRING}) -if(NOT MSVC) - list(APPEND MSGPACK_CMAKE_ARGS - "-DCMAKE_C_FLAGS:STRING=-fPIC") -endif() - if(USE_EXISTING_SRC_DIR) unset(MSGPACK_URL) endif() diff --git a/cmake.deps/cmake/TreesitterParserCMakeLists.txt b/cmake.deps/cmake/TreesitterParserCMakeLists.txt index 44e4ef160f..9bdf500aa7 100644 --- a/cmake.deps/cmake/TreesitterParserCMakeLists.txt +++ b/cmake.deps/cmake/TreesitterParserCMakeLists.txt @@ -11,7 +11,6 @@ add_library(parser set_target_properties( parser PROPERTIES - POSITION_INDEPENDENT_CODE ON OUTPUT_NAME ${PARSERLANG} PREFIX "" ) -- cgit From 20a932cb72cf077d54e3498ef93341ffe3d4cdbb Mon Sep 17 00:00:00 2001 From: dundargoc <33953936+dundargoc@users.noreply.github.com> Date: Tue, 24 Jan 2023 08:55:38 +0100 Subject: build: use cmake for all platforms for unibilium and libtermkey (#21926) It's simpler to rely on the same build file, especially if there aren't any platform-specific workarounds like in this case. --- cmake.deps/cmake/BuildLibtermkey.cmake | 39 ++++++++++---------------------- cmake.deps/cmake/BuildUnibilium.cmake | 30 ++++++++---------------- cmake.deps/cmake/UnibiliumCMakeLists.txt | 8 ++++--- 3 files changed, 26 insertions(+), 51 deletions(-) (limited to 'cmake.deps/cmake') diff --git a/cmake.deps/cmake/BuildLibtermkey.cmake b/cmake.deps/cmake/BuildLibtermkey.cmake index 1e0fb5d36a..ac453591e0 100644 --- a/cmake.deps/cmake/BuildLibtermkey.cmake +++ b/cmake.deps/cmake/BuildLibtermkey.cmake @@ -1,27 +1,3 @@ -if(WIN32) - set(LIBTERMKEY_CONFIGURE_COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_CURRENT_SOURCE_DIR}/cmake/libtermkeyCMakeLists.txt - ${DEPS_BUILD_DIR}/src/libtermkey/CMakeLists.txt - COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/libtermkey - -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} - ${BUILD_TYPE_STRING} - # Hack to avoid -rdynamic in Mingw - -DCMAKE_SHARED_LIBRARY_LINK_C_FLAGS="" - -DCMAKE_GENERATOR=${CMAKE_GENERATOR} - -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} - -DUNIBILIUM_INCLUDE_DIRS=${DEPS_INSTALL_DIR}/include - -DUNIBILIUM_LIBRARIES=${DEPS_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}unibilium${CMAKE_STATIC_LIBRARY_SUFFIX}) - set(LIBTERMKEY_BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $) - set(LIBTERMKEY_INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config $) -else() - find_package(PkgConfig REQUIRED) - - set(LIBTERMKEY_BUILD_COMMAND "" BUILD_IN_SOURCE 1) - set(LIBTERMKEY_INSTALL_COMMAND ${MAKE_PRG} CC=${DEPS_C_COMPILER} - PREFIX=${DEPS_INSTALL_DIR} PKG_CONFIG_PATH=${DEPS_LIB_DIR}/pkgconfig - CFLAGS=-fPIC LDFLAGS+=-static ${DEFAULT_MAKE_CFLAGS} install) -endif() - if(USE_EXISTING_SRC_DIR) unset(LIBTERMKEY_URL) endif() @@ -30,8 +6,17 @@ ExternalProject_Add(libtermkey URL_HASH SHA256=${LIBTERMKEY_SHA256} DOWNLOAD_NO_PROGRESS TRUE DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/libtermkey - CONFIGURE_COMMAND "${LIBTERMKEY_CONFIGURE_COMMAND}" - BUILD_COMMAND "${LIBTERMKEY_BUILD_COMMAND}" - INSTALL_COMMAND "${LIBTERMKEY_INSTALL_COMMAND}") + PATCH_COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_CURRENT_SOURCE_DIR}/cmake/libtermkeyCMakeLists.txt + ${DEPS_BUILD_DIR}/src/libtermkey/CMakeLists.txt + CMAKE_ARGS + -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} + -DCMAKE_SHARED_LIBRARY_LINK_C_FLAGS="" # Hack to avoid -rdynamic in Mingw + -DCMAKE_GENERATOR=${CMAKE_GENERATOR} + -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} + -DCMAKE_POSITION_INDEPENDENT_CODE=ON + -DUNIBILIUM_INCLUDE_DIRS=${DEPS_INSTALL_DIR}/include + -DUNIBILIUM_LIBRARIES=${DEPS_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}unibilium${CMAKE_STATIC_LIBRARY_SUFFIX} + ${BUILD_TYPE_STRING}) list(APPEND THIRD_PARTY_DEPS libtermkey) diff --git a/cmake.deps/cmake/BuildUnibilium.cmake b/cmake.deps/cmake/BuildUnibilium.cmake index cc56499edb..e76e39a148 100644 --- a/cmake.deps/cmake/BuildUnibilium.cmake +++ b/cmake.deps/cmake/BuildUnibilium.cmake @@ -1,21 +1,3 @@ -if(WIN32) - set(UNIBILIUM_CONFIGURE_COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_CURRENT_SOURCE_DIR}/cmake/UnibiliumCMakeLists.txt - ${DEPS_BUILD_DIR}/src/unibilium/CMakeLists.txt - COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/unibilium - -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} - -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} - ${BUILD_TYPE_STRING} - -DCMAKE_GENERATOR=${CMAKE_GENERATOR}) - set(UNIBILIUM_BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $) - set(UNIBILIUM_INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config $) -else() - set(UNIBILIUM_BUILD_COMMAND ${MAKE_PRG} CC=${DEPS_C_COMPILER} - PREFIX=${DEPS_INSTALL_DIR} CFLAGS=-fPIC LDFLAGS+=-static - BUILD_IN_SOURCE 1) - set(UNIBILIUM_INSTALL_COMMAND ${MAKE_PRG} PREFIX=${DEPS_INSTALL_DIR} install) -endif() - if(USE_EXISTING_SRC_DIR) unset(UNIBILIUM_URL) endif() @@ -24,8 +6,14 @@ ExternalProject_Add(unibilium URL_HASH SHA256=${UNIBILIUM_SHA256} DOWNLOAD_NO_PROGRESS TRUE DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/unibilium - CONFIGURE_COMMAND "${UNIBILIUM_CONFIGURE_COMMAND}" - BUILD_COMMAND "${UNIBILIUM_BUILD_COMMAND}" - INSTALL_COMMAND "${UNIBILIUM_INSTALL_COMMAND}") + PATCH_COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_CURRENT_SOURCE_DIR}/cmake/UnibiliumCMakeLists.txt + ${DEPS_BUILD_DIR}/src/unibilium/CMakeLists.txt + CMAKE_ARGS + -DCMAKE_GENERATOR=${CMAKE_GENERATOR} + -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} + -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} + -DCMAKE_POSITION_INDEPENDENT_CODE=ON + ${BUILD_TYPE_STRING}) list(APPEND THIRD_PARTY_DEPS unibilium) diff --git a/cmake.deps/cmake/UnibiliumCMakeLists.txt b/cmake.deps/cmake/UnibiliumCMakeLists.txt index 0a5d8481a7..e22c07cb3d 100644 --- a/cmake.deps/cmake/UnibiliumCMakeLists.txt +++ b/cmake.deps/cmake/UnibiliumCMakeLists.txt @@ -7,16 +7,18 @@ set_target_properties(unibilium PROPERTIES PUBLIC_HEADER ${PROJECT_SOURCE_DIR}/u VERSION "${VERSION_MAJOR}.${VERSION_MINOR}") if(NOT WIN32) - execute_process(COMMAND "shell ncursesw6-config --terminfo-dirs 2>/dev/null || \ + execute_process(COMMAND sh -c "ncursesw6-config --terminfo-dirs 2>/dev/null || \ ncurses6-config --terminfo-dirs 2>/dev/null || \ ncursesw5-config --terminfo-dirs 2>/dev/null || \ ncurses5-config --terminfo-dirs 2>/dev/null || \ echo '/etc/terminfo:/lib/terminfo:/usr/share/terminfo:/usr/lib/terminfo:/usr/local/share/terminfo:/usr/local/lib/terminfo'" OUTPUT_VARIABLE TERMINFO_DIRS) + # Remove trailing newline + string(STRIP "${TERMINFO_DIRS}" TERMINFO_DIRS) else() - set(TERMINFO_DIRS "\"\"") + set(TERMINFO_DIRS "") endif() -target_compile_definitions(unibilium PUBLIC TERMINFO_DIRS=${TERMINFO_DIRS}) +target_compile_definitions(unibilium PUBLIC "TERMINFO_DIRS=\"${TERMINFO_DIRS}\"") include(GNUInstallDirs) install(TARGETS unibilium -- cgit From bcbdb94185168048fe7140d9fe3d8eafeff7d9da Mon Sep 17 00:00:00 2001 From: dundargoc <33953936+dundargoc@users.noreply.github.com> Date: Tue, 24 Jan 2023 08:55:56 +0100 Subject: build: simplify treesitter installation (#21969) --- cmake.deps/cmake/BuildTreesitter.cmake | 3 +-- cmake.deps/cmake/TreesitterCMakeLists.txt | 14 +++----------- 2 files changed, 4 insertions(+), 13 deletions(-) (limited to 'cmake.deps/cmake') diff --git a/cmake.deps/cmake/BuildTreesitter.cmake b/cmake.deps/cmake/BuildTreesitter.cmake index c3ea02014f..836c25fe1d 100644 --- a/cmake.deps/cmake/BuildTreesitter.cmake +++ b/cmake.deps/cmake/BuildTreesitter.cmake @@ -11,8 +11,7 @@ if(MSVC) set(TREESITTER_BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $) set(TREESITTER_INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config $) else() - set(TS_CFLAGS "-O3 -Wall -Wextra") - set(TREESITTER_BUILD_COMMAND ${MAKE_PRG} CC=${DEPS_C_COMPILER} CFLAGS=${TS_CFLAGS}) + set(TREESITTER_BUILD_COMMAND ${MAKE_PRG} CC=${DEPS_C_COMPILER}) set(TREESITTER_INSTALL_COMMAND ${MAKE_PRG} CC=${DEPS_C_COMPILER} PREFIX=${DEPS_INSTALL_DIR} install) endif() diff --git a/cmake.deps/cmake/TreesitterCMakeLists.txt b/cmake.deps/cmake/TreesitterCMakeLists.txt index 69372bd2b0..27a57f80af 100644 --- a/cmake.deps/cmake/TreesitterCMakeLists.txt +++ b/cmake.deps/cmake/TreesitterCMakeLists.txt @@ -1,15 +1,8 @@ cmake_minimum_required(VERSION 3.10) project(tree-sitter LANGUAGES C) -file(GLOB SRC_FILES ${PROJECT_SOURCE_DIR}/lib/src/*.c) -foreach(sfile ${SRC_FILES}) - get_filename_component(f ${sfile} NAME) - if(${f} MATCHES "lib.c$") - list(REMOVE_ITEM SRC_FILES ${sfile}) - endif() -endforeach() -include_directories(${PROJECT_SOURCE_DIR}/lib/include) -add_library(tree-sitter ${SRC_FILES}) +add_library(tree-sitter lib/src/lib.c) +target_include_directories(tree-sitter PRIVATE lib/include) install(FILES lib/include/tree_sitter/api.h @@ -17,7 +10,6 @@ install(FILES DESTINATION include/tree_sitter) include(GNUInstallDirs) -install(TARGETS tree-sitter - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) +install(TARGETS tree-sitter DESTINATION ${CMAKE_INSTALL_LIBDIR}) # vim: set ft=cmake: -- cgit From 993dc6e97e895d2afbc2ff75c77f50db1ba810cd Mon Sep 17 00:00:00 2001 From: dundargoc <33953936+dundargoc@users.noreply.github.com> Date: Tue, 24 Jan 2023 09:36:32 +0100 Subject: build: use upstream CMakeLists.txt for unibilium (#21976) Also remove UnibiliumCMakeLists.txt as it's not necessary anymore. --- cmake.deps/cmake/BuildUnibilium.cmake | 3 --- cmake.deps/cmake/UnibiliumCMakeLists.txt | 29 ----------------------------- 2 files changed, 32 deletions(-) delete mode 100644 cmake.deps/cmake/UnibiliumCMakeLists.txt (limited to 'cmake.deps/cmake') diff --git a/cmake.deps/cmake/BuildUnibilium.cmake b/cmake.deps/cmake/BuildUnibilium.cmake index e76e39a148..dd42480a75 100644 --- a/cmake.deps/cmake/BuildUnibilium.cmake +++ b/cmake.deps/cmake/BuildUnibilium.cmake @@ -6,9 +6,6 @@ ExternalProject_Add(unibilium URL_HASH SHA256=${UNIBILIUM_SHA256} DOWNLOAD_NO_PROGRESS TRUE DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/unibilium - PATCH_COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_CURRENT_SOURCE_DIR}/cmake/UnibiliumCMakeLists.txt - ${DEPS_BUILD_DIR}/src/unibilium/CMakeLists.txt CMAKE_ARGS -DCMAKE_GENERATOR=${CMAKE_GENERATOR} -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} diff --git a/cmake.deps/cmake/UnibiliumCMakeLists.txt b/cmake.deps/cmake/UnibiliumCMakeLists.txt deleted file mode 100644 index e22c07cb3d..0000000000 --- a/cmake.deps/cmake/UnibiliumCMakeLists.txt +++ /dev/null @@ -1,29 +0,0 @@ -cmake_minimum_required(VERSION 3.10) -project(unibilium LANGUAGES C) - -file(GLOB SRC_FILES ${PROJECT_SOURCE_DIR}/*.c) -add_library(unibilium ${SRC_FILES}) -set_target_properties(unibilium PROPERTIES PUBLIC_HEADER ${PROJECT_SOURCE_DIR}/unibilium.h - VERSION "${VERSION_MAJOR}.${VERSION_MINOR}") - -if(NOT WIN32) - execute_process(COMMAND sh -c "ncursesw6-config --terminfo-dirs 2>/dev/null || \ - ncurses6-config --terminfo-dirs 2>/dev/null || \ - ncursesw5-config --terminfo-dirs 2>/dev/null || \ - ncurses5-config --terminfo-dirs 2>/dev/null || \ - echo '/etc/terminfo:/lib/terminfo:/usr/share/terminfo:/usr/lib/terminfo:/usr/local/share/terminfo:/usr/local/lib/terminfo'" - OUTPUT_VARIABLE TERMINFO_DIRS) - # Remove trailing newline - string(STRIP "${TERMINFO_DIRS}" TERMINFO_DIRS) -else() - set(TERMINFO_DIRS "") -endif() -target_compile_definitions(unibilium PUBLIC "TERMINFO_DIRS=\"${TERMINFO_DIRS}\"") - -include(GNUInstallDirs) -install(TARGETS unibilium - PUBLIC_HEADER - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) - -# vim: set ft=cmake: -- cgit From 51863b2d66bc5b2420a56959d0fcdbdb8a1e993e Mon Sep 17 00:00:00 2001 From: dundargoc <33953936+dundargoc@users.noreply.github.com> Date: Tue, 24 Jan 2023 15:24:15 +0100 Subject: build: remove tests for libtermkey (#21983) The dependencies aren't set up properly meaning that this will cause a failure on some systems such as void linux. Closes https://github.com/neovim/neovim/issues/21982. --- cmake.deps/cmake/libtermkeyCMakeLists.txt | 13 ------------- 1 file changed, 13 deletions(-) (limited to 'cmake.deps/cmake') diff --git a/cmake.deps/cmake/libtermkeyCMakeLists.txt b/cmake.deps/cmake/libtermkeyCMakeLists.txt index b419d38d7b..26c9d7730b 100644 --- a/cmake.deps/cmake/libtermkeyCMakeLists.txt +++ b/cmake.deps/cmake/libtermkeyCMakeLists.txt @@ -20,17 +20,4 @@ install(TARGETS termkey ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) -enable_testing() -file(GLOB TESTSOURCES "t/[0-9]*.c") -foreach(f ${TESTSOURCES}) - get_filename_component(t ${f} NAME_WE) - if(${t} STREQUAL 05read) - continue() - endif() - - add_executable("test_${t}" ${f} t/taplib.c) - target_link_libraries("test_${t}" termkey) - add_test("${t}" "test_${t}") -endforeach() - # vim: set ft=cmake: -- cgit From cd613712b1a8db233f95f173333b46ebd9df7c9f Mon Sep 17 00:00:00 2001 From: dundargoc <33953936+dundargoc@users.noreply.github.com> Date: Tue, 24 Jan 2023 16:43:29 +0100 Subject: build: use cmake to build treesitter on all platforms (#21984) This reduces platform-specific differences and the amount of code. --- cmake.deps/cmake/BuildTreesitter.cmake | 32 ++++++++++--------------------- cmake.deps/cmake/TreesitterCMakeLists.txt | 3 ++- 2 files changed, 12 insertions(+), 23 deletions(-) (limited to 'cmake.deps/cmake') diff --git a/cmake.deps/cmake/BuildTreesitter.cmake b/cmake.deps/cmake/BuildTreesitter.cmake index 836c25fe1d..ce33f22b5c 100644 --- a/cmake.deps/cmake/BuildTreesitter.cmake +++ b/cmake.deps/cmake/BuildTreesitter.cmake @@ -1,21 +1,3 @@ -if(MSVC) - set(TREESITTER_CONFIGURE_COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_CURRENT_SOURCE_DIR}/cmake/TreesitterCMakeLists.txt - ${DEPS_BUILD_DIR}/src/tree-sitter/CMakeLists.txt - COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/tree-sitter/CMakeLists.txt - -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} - -DCMAKE_GENERATOR=${CMAKE_GENERATOR} - -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} - ${BUILD_TYPE_STRING} - -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR}) - set(TREESITTER_BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $) - set(TREESITTER_INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config $) -else() - set(TREESITTER_BUILD_COMMAND ${MAKE_PRG} CC=${DEPS_C_COMPILER}) - set(TREESITTER_INSTALL_COMMAND - ${MAKE_PRG} CC=${DEPS_C_COMPILER} PREFIX=${DEPS_INSTALL_DIR} install) -endif() - if(USE_EXISTING_SRC_DIR) unset(TREESITTER_URL) endif() @@ -25,9 +7,15 @@ ExternalProject_Add(tree-sitter DOWNLOAD_NO_PROGRESS TRUE DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/tree-sitter INSTALL_DIR ${DEPS_INSTALL_DIR} - BUILD_IN_SOURCE 1 - CONFIGURE_COMMAND "${TREESITTER_CONFIGURE_COMMAND}" - BUILD_COMMAND "${TREESITTER_BUILD_COMMAND}" - INSTALL_COMMAND "${TREESITTER_INSTALL_COMMAND}") + PATCH_COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_CURRENT_SOURCE_DIR}/cmake/TreesitterCMakeLists.txt + ${DEPS_BUILD_DIR}/src/tree-sitter/CMakeLists.txt + CMAKE_ARGS + -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} + -DCMAKE_GENERATOR=${CMAKE_GENERATOR} + -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} + -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} + -DCMAKE_POSITION_INDEPENDENT_CODE=ON + ${BUILD_TYPE_STRING}) list(APPEND THIRD_PARTY_DEPS tree-sitter) diff --git a/cmake.deps/cmake/TreesitterCMakeLists.txt b/cmake.deps/cmake/TreesitterCMakeLists.txt index 27a57f80af..49fb19c96a 100644 --- a/cmake.deps/cmake/TreesitterCMakeLists.txt +++ b/cmake.deps/cmake/TreesitterCMakeLists.txt @@ -2,7 +2,8 @@ cmake_minimum_required(VERSION 3.10) project(tree-sitter LANGUAGES C) add_library(tree-sitter lib/src/lib.c) -target_include_directories(tree-sitter PRIVATE lib/include) +target_include_directories(tree-sitter + PRIVATE lib/src lib/include) install(FILES lib/include/tree_sitter/api.h -- cgit From b8288df99be8df701308167e4b0b497f003f25e9 Mon Sep 17 00:00:00 2001 From: dundargoc <33953936+dundargoc@users.noreply.github.com> Date: Wed, 25 Jan 2023 14:36:17 +0100 Subject: build: introduce default build variables (#21991) There are a number of cmake variables and cache variables that need to be passed to all dependencies. This is not only cumbersome, but also fragile as it's easy to miss adding or removing a flag from a dependency by accident. Introducing a global variable that controls all builds makes it much easier to handle our dependencies. Also fixes the currently broken release workflow as we need to pass the CMAKE_OSX_ARCHITECTURES variable to all dependencies built with cmake. --- cmake.deps/cmake/BuildGettext.cmake | 9 +++------ cmake.deps/cmake/BuildLibiconv.cmake | 7 ++----- cmake.deps/cmake/BuildLibtermkey.cmake | 8 ++------ cmake.deps/cmake/BuildLibuv.cmake | 10 +++------- cmake.deps/cmake/BuildLibvterm.cmake | 4 +++- cmake.deps/cmake/BuildLuv.cmake | 13 +++---------- cmake.deps/cmake/BuildMsgpack.cmake | 17 ++++------------- cmake.deps/cmake/BuildTreesitter.cmake | 9 ++------- cmake.deps/cmake/BuildTreesitterParsers.cmake | 8 +++----- cmake.deps/cmake/BuildUnibilium.cmake | 8 ++------ 10 files changed, 27 insertions(+), 66 deletions(-) (limited to 'cmake.deps/cmake') diff --git a/cmake.deps/cmake/BuildGettext.cmake b/cmake.deps/cmake/BuildGettext.cmake index 4ba1f46d2e..1f9fd38702 100644 --- a/cmake.deps/cmake/BuildGettext.cmake +++ b/cmake.deps/cmake/BuildGettext.cmake @@ -10,13 +10,10 @@ if(MSVC) PATCH_COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/cmake/GettextCMakeLists.txt ${DEPS_BUILD_DIR}/src/gettext/CMakeLists.txt - CMAKE_ARGS - -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} - ${BUILD_TYPE_STRING} - -DCMAKE_GENERATOR=${CMAKE_GENERATOR} - -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} + CMAKE_ARGS ${DEPS_CMAKE_ARGS} -DLIBICONV_INCLUDE_DIRS=${DEPS_INSTALL_DIR}/include - -DLIBICONV_LIBRARIES=${DEPS_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}libcharset${CMAKE_STATIC_LIBRARY_SUFFIX}$${DEPS_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}libiconv${CMAKE_STATIC_LIBRARY_SUFFIX}) + -DLIBICONV_LIBRARIES=${DEPS_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}libcharset${CMAKE_STATIC_LIBRARY_SUFFIX}$${DEPS_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}libiconv${CMAKE_STATIC_LIBRARY_SUFFIX} + CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS}) else() message(FATAL_ERROR "Trying to build gettext in an unsupported system ${CMAKE_SYSTEM_NAME}/${CMAKE_C_COMPILER_ID}") endif() diff --git a/cmake.deps/cmake/BuildLibiconv.cmake b/cmake.deps/cmake/BuildLibiconv.cmake index 382aae3df7..4b9c07ed6c 100644 --- a/cmake.deps/cmake/BuildLibiconv.cmake +++ b/cmake.deps/cmake/BuildLibiconv.cmake @@ -10,11 +10,8 @@ if(MSVC) PATCH_COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/cmake/LibiconvCMakeLists.txt ${DEPS_BUILD_DIR}/src/libiconv/CMakeLists.txt - CMAKE_ARGS - -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} - ${BUILD_TYPE_STRING} - -DCMAKE_GENERATOR=${CMAKE_GENERATOR} - -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM}) + CMAKE_ARGS ${DEPS_CMAKE_ARGS} + CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS}) else() message(FATAL_ERROR "Trying to build libiconv in an unsupported system ${CMAKE_SYSTEM_NAME}/${CMAKE_C_COMPILER_ID}") endif() diff --git a/cmake.deps/cmake/BuildLibtermkey.cmake b/cmake.deps/cmake/BuildLibtermkey.cmake index ac453591e0..6457a864ba 100644 --- a/cmake.deps/cmake/BuildLibtermkey.cmake +++ b/cmake.deps/cmake/BuildLibtermkey.cmake @@ -9,14 +9,10 @@ ExternalProject_Add(libtermkey PATCH_COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/cmake/libtermkeyCMakeLists.txt ${DEPS_BUILD_DIR}/src/libtermkey/CMakeLists.txt - CMAKE_ARGS - -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} + CMAKE_ARGS ${DEPS_CMAKE_ARGS} -DCMAKE_SHARED_LIBRARY_LINK_C_FLAGS="" # Hack to avoid -rdynamic in Mingw - -DCMAKE_GENERATOR=${CMAKE_GENERATOR} - -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} - -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DUNIBILIUM_INCLUDE_DIRS=${DEPS_INSTALL_DIR}/include -DUNIBILIUM_LIBRARIES=${DEPS_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}unibilium${CMAKE_STATIC_LIBRARY_SUFFIX} - ${BUILD_TYPE_STRING}) + 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 c21e166d95..eb88458644 100644 --- a/cmake.deps/cmake/BuildLibuv.cmake +++ b/cmake.deps/cmake/BuildLibuv.cmake @@ -5,15 +5,11 @@ ExternalProject_Add(libuv URL ${LIBUV_URL} URL_HASH SHA256=${LIBUV_SHA256} DOWNLOAD_NO_PROGRESS TRUE - CMAKE_ARGS - -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} + DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/libuv + CMAKE_ARGS ${DEPS_CMAKE_ARGS} -DCMAKE_INSTALL_LIBDIR=lib -DBUILD_TESTING=OFF - -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DLIBUV_BUILD_SHARED=OFF - ${BUILD_TYPE_STRING} - CMAKE_CACHE_ARGS - -DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES} - DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/libuv) + 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 2e508a8dc8..1578d56fba 100644 --- a/cmake.deps/cmake/BuildLibvterm.cmake +++ b/cmake.deps/cmake/BuildLibvterm.cmake @@ -33,6 +33,8 @@ ExternalProject_Add(libvterm BUILD_IN_SOURCE 1 CONFIGURE_COMMAND "${LIBVTERM_CONFIGURE_COMMAND}" BUILD_COMMAND "${LIBVTERM_BUILD_COMMAND}" - INSTALL_COMMAND "${LIBVTERM_INSTALL_COMMAND}") + INSTALL_COMMAND "${LIBVTERM_INSTALL_COMMAND}" + CMAKE_ARGS ${DEPS_CMAKE_ARGS} + CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS}) list(APPEND THIRD_PARTY_DEPS libvterm) diff --git a/cmake.deps/cmake/BuildLuv.cmake b/cmake.deps/cmake/BuildLuv.cmake index ec0707020a..38c0503c5b 100644 --- a/cmake.deps/cmake/BuildLuv.cmake +++ b/cmake.deps/cmake/BuildLuv.cmake @@ -2,18 +2,12 @@ set(LUV_INCLUDE_FLAGS "-I${DEPS_INSTALL_DIR}/include -I${DEPS_INSTALL_DIR}/include/luajit-2.1") set(LUV_CMAKE_ARGS - -DCMAKE_GENERATOR=${CMAKE_GENERATOR} - -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} - -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} - ${BUILD_TYPE_STRING} - -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} -DLUA_BUILD_TYPE=System -DLUA_COMPAT53_DIR=${DEPS_BUILD_DIR}/src/lua-compat-5.3 -DWITH_SHARED_LIBUV=ON -DBUILD_SHARED_LIBS=OFF -DBUILD_STATIC_LIBS=ON - -DBUILD_MODULE=OFF - -DCMAKE_POSITION_INDEPENDENT_CODE=ON) + -DBUILD_MODULE=OFF) if(USE_BUNDLED_LUAJIT) list(APPEND LUV_CMAKE_ARGS -DWITH_LUA_ENGINE=LuaJit) @@ -63,9 +57,8 @@ ExternalProject_Add(luv-static DOWNLOAD_NO_PROGRESS TRUE DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/luv SOURCE_DIR ${DEPS_BUILD_DIR}/src/luv - CMAKE_ARGS ${LUV_CMAKE_ARGS} - CMAKE_CACHE_ARGS - -DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES}) + 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) diff --git a/cmake.deps/cmake/BuildMsgpack.cmake b/cmake.deps/cmake/BuildMsgpack.cmake index 8347eb6170..431420fb62 100644 --- a/cmake.deps/cmake/BuildMsgpack.cmake +++ b/cmake.deps/cmake/BuildMsgpack.cmake @@ -1,13 +1,3 @@ -set(MSGPACK_CMAKE_ARGS - -DMSGPACK_BUILD_TESTS=OFF - -DMSGPACK_BUILD_EXAMPLES=OFF - -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} - -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} - -DCMAKE_GENERATOR=${CMAKE_GENERATOR} - -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} - -DCMAKE_POSITION_INDEPENDENT_CODE=ON - ${BUILD_TYPE_STRING}) - if(USE_EXISTING_SRC_DIR) unset(MSGPACK_URL) endif() @@ -16,8 +6,9 @@ ExternalProject_Add(msgpack URL_HASH SHA256=${MSGPACK_SHA256} DOWNLOAD_NO_PROGRESS TRUE DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/msgpack - CMAKE_ARGS "${MSGPACK_CMAKE_ARGS}" - CMAKE_CACHE_ARGS - -DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES}) + CMAKE_ARGS ${DEPS_CMAKE_ARGS} + -DMSGPACK_BUILD_TESTS=OFF + -DMSGPACK_BUILD_EXAMPLES=OFF + CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS}) list(APPEND THIRD_PARTY_DEPS msgpack) diff --git a/cmake.deps/cmake/BuildTreesitter.cmake b/cmake.deps/cmake/BuildTreesitter.cmake index ce33f22b5c..d906e6aa59 100644 --- a/cmake.deps/cmake/BuildTreesitter.cmake +++ b/cmake.deps/cmake/BuildTreesitter.cmake @@ -10,12 +10,7 @@ ExternalProject_Add(tree-sitter PATCH_COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/cmake/TreesitterCMakeLists.txt ${DEPS_BUILD_DIR}/src/tree-sitter/CMakeLists.txt - CMAKE_ARGS - -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} - -DCMAKE_GENERATOR=${CMAKE_GENERATOR} - -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} - -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} - -DCMAKE_POSITION_INDEPENDENT_CODE=ON - ${BUILD_TYPE_STRING}) + 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/BuildTreesitterParsers.cmake b/cmake.deps/cmake/BuildTreesitterParsers.cmake index ead039aae6..d62b19d97d 100644 --- a/cmake.deps/cmake/BuildTreesitterParsers.cmake +++ b/cmake.deps/cmake/BuildTreesitterParsers.cmake @@ -8,14 +8,12 @@ function(BuildTSParser LANG TS_URL TS_SHA256 TS_CMAKE_FILE) URL_HASH SHA256=${TS_SHA256} DOWNLOAD_NO_PROGRESS TRUE DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/${NAME} - CMAKE_CACHE_ARGS - -DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES} PATCH_COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/cmake/${TS_CMAKE_FILE} ${DEPS_BUILD_DIR}/src/${NAME}/CMakeLists.txt - CMAKE_ARGS - -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} - -DPARSERLANG=${LANG}) + CMAKE_ARGS ${DEPS_CMAKE_ARGS} + -DPARSERLANG=${LANG} + CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS}) endfunction() BuildTSParser(c ${TREESITTER_C_URL} ${TREESITTER_C_SHA256} TreesitterParserCMakeLists.txt) diff --git a/cmake.deps/cmake/BuildUnibilium.cmake b/cmake.deps/cmake/BuildUnibilium.cmake index dd42480a75..9a8caf89d1 100644 --- a/cmake.deps/cmake/BuildUnibilium.cmake +++ b/cmake.deps/cmake/BuildUnibilium.cmake @@ -6,11 +6,7 @@ ExternalProject_Add(unibilium URL_HASH SHA256=${UNIBILIUM_SHA256} DOWNLOAD_NO_PROGRESS TRUE DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/unibilium - CMAKE_ARGS - -DCMAKE_GENERATOR=${CMAKE_GENERATOR} - -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} - -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} - -DCMAKE_POSITION_INDEPENDENT_CODE=ON - ${BUILD_TYPE_STRING}) + CMAKE_ARGS ${DEPS_CMAKE_ARGS} + CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS}) list(APPEND THIRD_PARTY_DEPS unibilium) -- cgit