aboutsummaryrefslogtreecommitdiff
path: root/third-party/cmake
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2022-06-27 03:08:59 -0700
committerJustin M. Keyes <justinkz@gmail.com>2022-06-28 04:02:29 -0700
commitf05a2891d3da9f9fcd9c7457ca0c2a54ff65078b (patch)
treede382ef0008871d7e7a41b29172b41bd97a39e05 /third-party/cmake
parent9ddb481d88d3926111e83d512921ebe98bb426ae (diff)
downloadrneovim-f05a2891d3da9f9fcd9c7457ca0c2a54ff65078b.tar.gz
rneovim-f05a2891d3da9f9fcd9c7457ca0c2a54ff65078b.tar.bz2
rneovim-f05a2891d3da9f9fcd9c7457ca0c2a54ff65078b.zip
build: rename build-related dirs
Problem: Dirs "config", "packaging", and "third-party" are all closely related but this is not obvious from the layout. This adds friction for new contributors. Solution: - rename config/ to cmake.config/ - rename test/config/ to test/cmakeconfig/ because it is used in Lua tests: require('test.cmakeconfig.paths'). - rename packaging/ to cmake.packaging/ - rename third-party/ to cmake.deps/ (parallel with .deps/)
Diffstat (limited to 'third-party/cmake')
-rw-r--r--third-party/cmake/BuildGettext.cmake37
-rw-r--r--third-party/cmake/BuildLibiconv.cmake32
-rw-r--r--third-party/cmake/BuildLibtermkey.cmake57
-rw-r--r--third-party/cmake/BuildLibuv.cmake77
-rw-r--r--third-party/cmake/BuildLibvterm.cmake69
-rw-r--r--third-party/cmake/BuildLua.cmake96
-rw-r--r--third-party/cmake/BuildLuajit.cmake163
-rw-r--r--third-party/cmake/BuildLuarocks.cmake227
-rw-r--r--third-party/cmake/BuildLuv.cmake133
-rw-r--r--third-party/cmake/BuildMsgpack.cmake66
-rw-r--r--third-party/cmake/BuildTreesitter.cmake59
-rw-r--r--third-party/cmake/BuildTreesitterParsers.cmake29
-rw-r--r--third-party/cmake/BuildUnibilium.cmake48
-rw-r--r--third-party/cmake/CopyFilesGlob.cmake20
-rw-r--r--third-party/cmake/DownloadAndExtractFile.cmake195
-rw-r--r--third-party/cmake/GetBinaryDeps.cmake43
-rw-r--r--third-party/cmake/GettextCMakeLists.txt329
-rw-r--r--third-party/cmake/LibiconvCMakeLists.txt97
-rw-r--r--third-party/cmake/LibuvCMakeLists.txt33
-rw-r--r--third-party/cmake/Libvterm-tbl2inc_c.cmake163
-rw-r--r--third-party/cmake/LibvtermCMakeLists.txt92
-rw-r--r--third-party/cmake/RemoveFiles.cmake5
-rw-r--r--third-party/cmake/TargetArch.cmake23
-rw-r--r--third-party/cmake/TreesitterCMakeLists.txt21
-rw-r--r--third-party/cmake/TreesitterParserCMakeLists.txt19
-rw-r--r--third-party/cmake/UnibiliumCMakeLists.txt25
-rw-r--r--third-party/cmake/libtermkeyCMakeLists.txt34
27 files changed, 0 insertions, 2192 deletions
diff --git a/third-party/cmake/BuildGettext.cmake b/third-party/cmake/BuildGettext.cmake
deleted file mode 100644
index 6128ecfa69..0000000000
--- a/third-party/cmake/BuildGettext.cmake
+++ /dev/null
@@ -1,37 +0,0 @@
-if(MSVC)
-
- ExternalProject_Add(gettext
- PREFIX ${DEPS_BUILD_DIR}
- URL ${GETTEXT_URL}
- 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
- COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/gettext
- -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR}
- # Pass toolchain
- -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN}
- -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
- -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}$<SEMICOLON>${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})
-
-else()
- message(FATAL_ERROR "Trying to build gettext in an unsupported system ${CMAKE_SYSTEM_NAME}/${CMAKE_C_COMPILER_ID}")
-endif()
-
-list(APPEND THIRD_PARTY_DEPS gettext)
-if(USE_BUNDLED_LIBICONV)
- add_dependencies(gettext libiconv)
-endif()
diff --git a/third-party/cmake/BuildLibiconv.cmake b/third-party/cmake/BuildLibiconv.cmake
deleted file mode 100644
index 5ff33e0cd3..0000000000
--- a/third-party/cmake/BuildLibiconv.cmake
+++ /dev/null
@@ -1,32 +0,0 @@
-if(MSVC)
-
- ExternalProject_Add(libiconv
- PREFIX ${DEPS_BUILD_DIR}
- URL ${LIBICONV_URL}
- 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
- COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/libiconv
- -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR}
- # Pass toolchain
- -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN}
- -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
- -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})
-
-else()
- message(FATAL_ERROR "Trying to build libiconv in an unsupported system ${CMAKE_SYSTEM_NAME}/${CMAKE_C_COMPILER_ID}")
-endif()
-
-list(APPEND THIRD_PARTY_DEPS libiconv)
diff --git a/third-party/cmake/BuildLibtermkey.cmake b/third-party/cmake/BuildLibtermkey.cmake
deleted file mode 100644
index d44e09d734..0000000000
--- a/third-party/cmake/BuildLibtermkey.cmake
+++ /dev/null
@@ -1,57 +0,0 @@
-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
- ${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}
- -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
- # 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}
- BUILD_COMMAND ${CMAKE_COMMAND} --build . --config ${CMAKE_BUILD_TYPE}
- INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config ${CMAKE_BUILD_TYPE})
-else()
-find_package(PkgConfig REQUIRED)
-
-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()
-
-list(APPEND THIRD_PARTY_DEPS libtermkey)
diff --git a/third-party/cmake/BuildLibuv.cmake b/third-party/cmake/BuildLibuv.cmake
deleted file mode 100644
index ba5de38714..0000000000
--- a/third-party/cmake/BuildLibuv.cmake
+++ /dev/null
@@ -1,77 +0,0 @@
-# BuildLibuv(TARGET targetname CONFIGURE_COMMAND ... BUILD_COMMAND ... INSTALL_COMMAND ...)
-# Reusable function to build libuv, wraps ExternalProject_Add.
-# Failing to pass a command argument will result in no command being run
-function(BuildLibuv)
- cmake_parse_arguments(_libuv
- "BUILD_IN_SOURCE"
- "TARGET"
- "PATCH_COMMAND;CONFIGURE_COMMAND;BUILD_COMMAND;INSTALL_COMMAND"
- ${ARGN})
-
- if(NOT _libuv_CONFIGURE_COMMAND AND NOT _libuv_BUILD_COMMAND
- AND NOT _libuv_INSTALL_COMMAND)
- message(FATAL_ERROR "Must pass at least one of CONFIGURE_COMMAND, BUILD_COMMAND, INSTALL_COMMAND")
- endif()
- if(NOT _libuv_TARGET)
- set(_libuv_TARGET "libuv")
- endif()
-
- ExternalProject_Add(${_libuv_TARGET}
- PREFIX ${DEPS_BUILD_DIR}
- URL ${LIBUV_URL}
- 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_TARGET}
- -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR}
- -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake
- PATCH_COMMAND "${_libuv_PATCH_COMMAND}"
- BUILD_IN_SOURCE ${_libuv_BUILD_IN_SOURCE}
- CONFIGURE_COMMAND "${_libuv_CONFIGURE_COMMAND}"
- BUILD_COMMAND "${_libuv_BUILD_COMMAND}"
- INSTALL_COMMAND "${_libuv_INSTALL_COMMAND}")
-endfunction()
-
-set(UNIX_CFGCMD sh ${DEPS_BUILD_DIR}/src/libuv/autogen.sh &&
- ${DEPS_BUILD_DIR}/src/libuv/configure --with-pic --disable-shared
- --prefix=${DEPS_INSTALL_DIR} --libdir=${DEPS_INSTALL_DIR}/lib
- CC=${DEPS_C_COMPILER})
-
-if(UNIX)
- BuildLibuv(
- CONFIGURE_COMMAND ${UNIX_CFGCMD} MAKE=${MAKE_PRG}
- INSTALL_COMMAND ${MAKE_PRG} V=1 install)
-
-elseif(WIN32)
-
- set(UV_OUTPUT_DIR ${DEPS_BUILD_DIR}/src/libuv/${CMAKE_BUILD_TYPE})
- if(MSVC)
- set(BUILD_SHARED ON)
- elseif(MINGW)
- set(BUILD_SHARED OFF)
- else()
- message(FATAL_ERROR "Trying to build libuv in an unsupported system ${CMAKE_SYSTEM_NAME}/${CMAKE_C_COMPILER_ID}")
- endif()
- BuildLibUv(BUILD_IN_SOURCE
- CONFIGURE_COMMAND ${CMAKE_COMMAND} -E copy
- ${CMAKE_CURRENT_SOURCE_DIR}/cmake/LibuvCMakeLists.txt
- ${DEPS_BUILD_DIR}/src/libuv/CMakeLists.txt
- COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/libuv/CMakeLists.txt
- -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
- -DCMAKE_GENERATOR=${CMAKE_GENERATOR}
- -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM}
- -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
- -DBUILD_SHARED_LIBS=${BUILD_SHARED}
- -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR}
- PATCH_COMMAND ${LIBUV_PATCH_COMMAND}
- BUILD_COMMAND ${CMAKE_COMMAND} --build . --config ${CMAKE_BUILD_TYPE}
- INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config ${CMAKE_BUILD_TYPE})
-
-else()
- message(FATAL_ERROR "Trying to build libuv in an unsupported system ${CMAKE_SYSTEM_NAME}/${CMAKE_C_COMPILER_ID}")
-endif()
-
-list(APPEND THIRD_PARTY_DEPS libuv)
diff --git a/third-party/cmake/BuildLibvterm.cmake b/third-party/cmake/BuildLibvterm.cmake
deleted file mode 100644
index 2c300dda7c..0000000000
--- a/third-party/cmake/BuildLibvterm.cmake
+++ /dev/null
@@ -1,69 +0,0 @@
-# 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)
- 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
- COMMAND ${CMAKE_COMMAND} -E copy
- ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Libvterm-tbl2inc_c.cmake
- ${DEPS_BUILD_DIR}/src/libvterm/tbl2inc_c.cmake
- COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/libvterm
- -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR}
- -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
- -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM}
- "-DCMAKE_C_FLAGS:STRING=${CMAKE_C_COMPILER_ARG1} -fPIC"
- -DCMAKE_GENERATOR=${CMAKE_GENERATOR})
- set(LIBVTERM_BUILD_COMMAND ${CMAKE_COMMAND} --build . --config ${CMAKE_BUILD_TYPE})
- set(LIBVTERM_INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config ${CMAKE_BUILD_TYPE})
-else()
- set(LIBVTERM_INSTALL_COMMAND ${MAKE_PRG} CC=${DEPS_C_COMPILER}
- PREFIX=${DEPS_INSTALL_DIR}
- CFLAGS=-fPIC
- LDFLAGS+=-static
- ${DEFAULT_MAKE_CFLAGS}
- install)
-endif()
-
-BuildLibvterm(PATCH_COMMAND ${LIBVTERM_PATCH_COMMAND}
- CONFIGURE_COMMAND ${LIBVTERM_CONFIGURE_COMMAND}
- BUILD_COMMAND ${LIBVTERM_BUILD_COMMAND}
- INSTALL_COMMAND ${LIBVTERM_INSTALL_COMMAND})
-
-list(APPEND THIRD_PARTY_DEPS libvterm)
diff --git a/third-party/cmake/BuildLua.cmake b/third-party/cmake/BuildLua.cmake
deleted file mode 100644
index a40cb7dcb2..0000000000
--- a/third-party/cmake/BuildLua.cmake
+++ /dev/null
@@ -1,96 +0,0 @@
-# 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")
- set(LUA_TARGET macosx)
-elseif(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
- set(LUA_TARGET freebsd)
-elseif(CMAKE_SYSTEM_NAME MATCHES "BSD")
- set(CMAKE_LUA_TARGET bsd)
-elseif(CMAKE_SYSTEM_NAME MATCHES "^MINGW")
- set(CMAKE_LUA_TARGET mingw)
-else()
- if(UNIX)
- set(LUA_TARGET posix)
- else()
- set(LUA_TARGET generic)
- endif()
-endif()
-
-set(LUA_CFLAGS "-O0 -g3 -fPIC")
-set(LUA_LDFLAGS "")
-
-if(CLANG_ASAN_UBSAN)
- set(LUA_CFLAGS "${LUA_CFLAGS} -fsanitize=address")
- set(LUA_CFLAGS "${LUA_CFLAGS} -fno-omit-frame-pointer")
- set(LUA_CFLAGS "${LUA_CFLAGS} -fno-optimize-sibling-calls")
-
- set(LUA_LDFLAGS "${LUA_LDFLAGS} -fsanitize=address")
-endif()
-
-set(LUA_CONFIGURE_COMMAND
- sed -e "/^CC/s@gcc@${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_ARG1}@"
- -e "/^CFLAGS/s@-O2@${LUA_CFLAGS}@"
- -e "/^MYLDFLAGS/s@$@${LUA_LDFLAGS}@"
- -e "s@-lreadline@@g"
- -e "s@-lhistory@@g"
- -e "s@-lncurses@@g"
- -i ${DEPS_BUILD_DIR}/src/lua/src/Makefile &&
- sed -e "/#define LUA_USE_READLINE/d"
- -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})
-list(APPEND THIRD_PARTY_DEPS lua)
-
-set(BUSTED ${DEPS_INSTALL_DIR}/bin/busted)
-set(BUSTED_LUA ${BUSTED}-lua)
-
-add_custom_command(OUTPUT ${BUSTED_LUA}
- COMMAND sed -e 's/^exec/exec $$LUA_DEBUGGER/' -e 's/jit//g' < ${BUSTED} > ${BUSTED_LUA} && chmod +x ${BUSTED_LUA}
- DEPENDS lua busted ${BUSTED})
-add_custom_target(busted-lua
- DEPENDS ${DEPS_INSTALL_DIR}/bin/busted-lua)
-
-list(APPEND THIRD_PARTY_DEPS busted-lua)
diff --git a/third-party/cmake/BuildLuajit.cmake b/third-party/cmake/BuildLuajit.cmake
deleted file mode 100644
index c8d5b39398..0000000000
--- a/third-party/cmake/BuildLuajit.cmake
+++ /dev/null
@@ -1,163 +0,0 @@
-# BuildLuajit(TARGET targetname CONFIGURE_COMMAND ... BUILD_COMMAND ... INSTALL_COMMAND ...)
-# Reusable function to build luajit, wraps ExternalProject_Add.
-# Failing to pass a command argument will result in no command being run
-function(BuildLuajit)
- cmake_parse_arguments(_luajit
- ""
- "TARGET"
- "CONFIGURE_COMMAND;BUILD_COMMAND;INSTALL_COMMAND;DEPENDS"
- ${ARGN})
- if(NOT _luajit_CONFIGURE_COMMAND AND NOT _luajit_BUILD_COMMAND
- AND NOT _luajit_INSTALL_COMMAND)
- message(FATAL_ERROR "Must pass at least one of CONFIGURE_COMMAND, BUILD_COMMAND, INSTALL_COMMAND")
- endif()
- if(NOT _luajit_TARGET)
- set(_luajit_TARGET "luajit")
- endif()
-
- ExternalProject_Add(${_luajit_TARGET}
- PREFIX ${DEPS_BUILD_DIR}
- URL ${LUAJIT_URL}
- 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}"
- INSTALL_COMMAND "${_luajit_INSTALL_COMMAND}"
- DEPENDS "${_luajit_DEPENDS}")
-
- # Create symlink for development version manually.
- if(UNIX)
- add_custom_command(
- TARGET ${_luajit_TARGET}
- COMMAND ${CMAKE_COMMAND} -E create_symlink luajit-2.1.0-beta3 ${DEPS_BIN_DIR}/${_luajit_TARGET})
- endif()
-endfunction()
-
-check_c_compiler_flag(-fno-stack-check HAS_NO_STACK_CHECK)
-if(CMAKE_SYSTEM_NAME MATCHES "Darwin" AND HAS_NO_STACK_CHECK)
- set(NO_STACK_CHECK "CFLAGS+=-fno-stack-check")
-else()
- set(NO_STACK_CHECK "")
-endif()
-if(CMAKE_SYSTEM_NAME MATCHES "OpenBSD")
- set(AMD64_ABI "LDFLAGS=-lpthread -lc++abi")
-else()
- set(AMD64_ABI "")
-endif()
-set(BUILDCMD_UNIX ${MAKE_PRG} CFLAGS=-fPIC
- CFLAGS+=-DLUA_USE_APICHECK
- CFLAGS+=-funwind-tables
- ${NO_STACK_CHECK}
- ${AMD64_ABI}
- CCDEBUG+=-g
- Q=)
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
- if(CMAKE_OSX_DEPLOYMENT_TARGET)
- set(DEPLOYMENT_TARGET "MACOSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET}")
- else()
- execute_process(COMMAND sw_vers -productVersion
- OUTPUT_VARIABLE MACOS_VERSION
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- set(DEPLOYMENT_TARGET "MACOSX_DEPLOYMENT_TARGET=${MACOS_VERSION}")
- endif()
-else()
- set(DEPLOYMENT_TARGET "")
-endif()
-
-if((UNIX AND NOT APPLE) OR (APPLE AND NOT CMAKE_OSX_ARCHITECTURES))
- BuildLuaJit(INSTALL_COMMAND ${BUILDCMD_UNIX}
- CC=${DEPS_C_COMPILER} PREFIX=${DEPS_INSTALL_DIR}
- ${DEPLOYMENT_TARGET} install)
-
-elseif(CMAKE_OSX_ARCHITECTURES AND APPLE)
-
- # Passing multiple `-arch` flags to the LuaJIT build will cause it to fail.
- # To get a working universal build, we build each requested architecture slice
- # individually then `lipo` them all up.
- set(LUAJIT_SRC_DIR "${DEPS_BUILD_DIR}/src/luajit")
- foreach(ARCH IN LISTS CMAKE_OSX_ARCHITECTURES)
- set(STATIC_CC "${LUAJIT_C_COMPILER} -arch ${ARCH}")
- set(DYNAMIC_CC "${LUAJIT_C_COMPILER} -arch ${ARCH} -fPIC")
- set(TARGET_LD "${LUAJIT_C_COMPILER} -arch ${ARCH}")
- list(APPEND LUAJIT_THIN_EXECUTABLES "${LUAJIT_SRC_DIR}-${ARCH}/src/luajit")
- list(APPEND LUAJIT_THIN_STATIC_LIBS "${LUAJIT_SRC_DIR}-${ARCH}/src/libluajit.a")
- list(APPEND LUAJIT_THIN_DYLIBS "${LUAJIT_SRC_DIR}-${ARCH}/src/libluajit.so")
- list(APPEND LUAJIT_THIN_TARGETS "luajit-${ARCH}")
-
- # See https://luajit.org/install.html#cross.
- BuildLuaJit(TARGET "luajit-${ARCH}"
- BUILD_COMMAND ${BUILDCMD_UNIX}
- CC=${LUAJIT_C_COMPILER} STATIC_CC=${STATIC_CC}
- DYNAMIC_CC=${DYNAMIC_CC} TARGET_LD=${TARGET_LD}
- PREFIX=${DEPS_INSTALL_DIR}
- ${DEPLOYMENT_TARGET})
- endforeach()
- BuildLuaJit(
- CONFIGURE_COMMAND ${BUILDCMD_UNIX} CC=${LUAJIT_C_COMPILER} PREFIX=${DEPS_INSTALL_DIR} ${DEPLOYMENT_TARGET}
- COMMAND ${CMAKE_COMMAND} -E rm -f ${LUAJIT_SRC_DIR}/src/luajit ${LUAJIT_SRC_DIR}/src/libluajit.so ${LUAJIT_SRC_DIR}/src/libluajit.a
- BUILD_COMMAND lipo ${LUAJIT_THIN_EXECUTABLES} -create -output ${LUAJIT_SRC_DIR}/src/luajit
- COMMAND lipo ${LUAJIT_THIN_STATIC_LIBS} -create -output ${LUAJIT_SRC_DIR}/src/libluajit.a
- COMMAND lipo ${LUAJIT_THIN_DYLIBS} -create -output ${LUAJIT_SRC_DIR}/src/libluajit.so
- INSTALL_COMMAND ${BUILDCMD_UNIX} CC=${LUAJIT_C_COMPILER} PREFIX=${DEPS_INSTALL_DIR} ${DEPLOYMENT_TARGET} install
- DEPENDS ${LUAJIT_THIN_TARGETS}
- )
-
-elseif(MINGW)
-
- if(CMAKE_GENERATOR MATCHES "Ninja")
- set(LUAJIT_MAKE_PRG ${MAKE_PRG})
- else()
- set(LUAJIT_MAKE_PRG ${CMAKE_MAKE_PROGRAM})
- endif()
- BuildLuaJit(BUILD_COMMAND ${LUAJIT_MAKE_PRG} CC=${DEPS_C_COMPILER}
- PREFIX=${DEPS_INSTALL_DIR}
- CFLAGS+=-DLUA_USE_APICHECK
- CFLAGS+=-funwind-tables
- CCDEBUG+=-g
- BUILDMODE=static
- # Build a DLL too
- COMMAND ${LUAJIT_MAKE_PRG} CC=${DEPS_C_COMPILER} BUILDMODE=dynamic
-
- INSTALL_COMMAND ${CMAKE_COMMAND} -E make_directory ${DEPS_INSTALL_DIR}/bin
- COMMAND ${CMAKE_COMMAND} -E copy ${DEPS_BUILD_DIR}/src/luajit/src/luajit.exe ${DEPS_INSTALL_DIR}/bin
- COMMAND ${CMAKE_COMMAND} -E copy ${DEPS_BUILD_DIR}/src/luajit/src/lua51.dll ${DEPS_INSTALL_DIR}/bin
- COMMAND ${CMAKE_COMMAND} -E make_directory ${DEPS_INSTALL_DIR}/lib
- # Luarocks searches for lua51.dll in lib
- COMMAND ${CMAKE_COMMAND} -E copy ${DEPS_BUILD_DIR}/src/luajit/src/lua51.dll ${DEPS_INSTALL_DIR}/lib
- COMMAND ${CMAKE_COMMAND} -E copy ${DEPS_BUILD_DIR}/src/luajit/src/libluajit.a ${DEPS_INSTALL_DIR}/lib
- COMMAND ${CMAKE_COMMAND} -E make_directory ${DEPS_INSTALL_DIR}/include/luajit-2.1
- COMMAND ${CMAKE_COMMAND} -DFROM_GLOB=${DEPS_BUILD_DIR}/src/luajit/src/*.h -DTO=${DEPS_INSTALL_DIR}/include/luajit-2.1 -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/CopyFilesGlob.cmake
- COMMAND ${CMAKE_COMMAND} -E make_directory ${DEPS_INSTALL_DIR}/bin/lua/jit
- COMMAND ${CMAKE_COMMAND} -E copy_directory ${DEPS_BUILD_DIR}/src/luajit/src/jit ${DEPS_INSTALL_DIR}/bin/lua/jit
- )
-elseif(MSVC)
-
- BuildLuaJit(
- BUILD_COMMAND ${CMAKE_COMMAND} -E chdir ${DEPS_BUILD_DIR}/src/luajit/src ${DEPS_BUILD_DIR}/src/luajit/src/msvcbuild.bat
- INSTALL_COMMAND ${CMAKE_COMMAND} -E make_directory ${DEPS_INSTALL_DIR}/bin
- COMMAND ${CMAKE_COMMAND} -E copy ${DEPS_BUILD_DIR}/src/luajit/src/luajit.exe ${DEPS_INSTALL_DIR}/bin
- COMMAND ${CMAKE_COMMAND} -E copy ${DEPS_BUILD_DIR}/src/luajit/src/lua51.dll ${DEPS_INSTALL_DIR}/bin
- COMMAND ${CMAKE_COMMAND} -E make_directory ${DEPS_INSTALL_DIR}/lib
- # Luarocks searches for lua51.lib
- COMMAND ${CMAKE_COMMAND} -E copy ${DEPS_BUILD_DIR}/src/luajit/src/lua51.lib ${DEPS_INSTALL_DIR}/lib/lua51.lib
- # Luv searches for luajit.lib
- COMMAND ${CMAKE_COMMAND} -E copy ${DEPS_BUILD_DIR}/src/luajit/src/lua51.lib ${DEPS_INSTALL_DIR}/lib/luajit.lib
- COMMAND ${CMAKE_COMMAND} -E make_directory ${DEPS_INSTALL_DIR}/include/luajit-2.1
- COMMAND ${CMAKE_COMMAND} -DFROM_GLOB=${DEPS_BUILD_DIR}/src/luajit/src/*.h -DTO=${DEPS_INSTALL_DIR}/include/luajit-2.1 -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/CopyFilesGlob.cmake
- COMMAND ${CMAKE_COMMAND} -E make_directory ${DEPS_INSTALL_DIR}/bin/lua/jit
- COMMAND ${CMAKE_COMMAND} -E copy_directory ${DEPS_BUILD_DIR}/src/luajit/src/jit ${DEPS_INSTALL_DIR}/bin/lua/jit
- )
-else()
- message(FATAL_ERROR "Trying to build luajit in an unsupported system ${CMAKE_SYSTEM_NAME}/${CMAKE_C_COMPILER_ID}")
-endif()
-
-list(APPEND THIRD_PARTY_DEPS luajit)
diff --git a/third-party/cmake/BuildLuarocks.cmake b/third-party/cmake/BuildLuarocks.cmake
deleted file mode 100644
index 6933d263f2..0000000000
--- a/third-party/cmake/BuildLuarocks.cmake
+++ /dev/null
@@ -1,227 +0,0 @@
-# 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.
-#
-# 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..
-
-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)
-
-# 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})
-endif()
-
-# Lua version, used with rocks directories.
-# Defaults to 5.1 for bundled LuaJIT/Lua.
-set(LUA_VERSION "5.1")
-
-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-interpreter=luajit)
- elseif(USE_BUNDLED_LUA)
- list(APPEND LUAROCKS_OPTS
- --with-lua=${HOSTDEPS_INSTALL_DIR})
- else()
- find_package(LuaJit)
- if(LUAJIT_FOUND)
- list(APPEND LUAROCKS_OPTS
- --with-lua-include=${LUAJIT_INCLUDE_DIRS}
- --with-lua-interpreter=luajit)
- endif()
-
- # Get LUA_VERSION used with rocks output.
- if(LUAJIT_FOUND)
- set(LUA_EXE "luajit")
- else()
- set(LUA_EXE "lua")
- endif()
- execute_process(
- COMMAND ${LUA_EXE} -e "print(string.sub(_VERSION, 5))"
- OUTPUT_VARIABLE LUA_VERSION
- ERROR_VARIABLE ERR
- RESULT_VARIABLE RES)
- if(NOT RES EQUAL 0)
- message(FATAL_ERROR "Could not get LUA_VERSION with ${LUA_EXE}: ${ERR}")
- 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)
-elseif(MSVC OR MINGW)
-
- if(MINGW)
- set(COMPILER_FLAG /MW)
- elseif(MSVC)
- set(COMPILER_FLAG /MSVC)
- endif()
-
- # Ignore USE_BUNDLED_LUAJIT - always ON for native Win32
- BuildLuarocks(INSTALL_COMMAND install.bat /FORCECONFIG /NOREG /NOADMIN /Q /F
- /LUA ${DEPS_INSTALL_DIR}
- /LIB ${DEPS_LIB_DIR}
- /BIN ${DEPS_BIN_DIR}
- /INC ${DEPS_INSTALL_DIR}/include/luajit-2.1
- /P ${DEPS_INSTALL_DIR}/luarocks /TREE ${DEPS_INSTALL_DIR}
- /SCRIPTS ${DEPS_BIN_DIR}
- /CMOD ${DEPS_BIN_DIR}
- ${COMPILER_FLAG}
- /LUAMOD ${DEPS_BIN_DIR}/lua)
-
- set(LUAROCKS_BINARY ${DEPS_INSTALL_DIR}/luarocks/luarocks.bat)
-else()
- message(FATAL_ERROR "Trying to build luarocks in an unsupported system ${CMAKE_SYSTEM_NAME}/${CMAKE_C_COMPILER_ID}")
-endif()
-
-list(APPEND THIRD_PARTY_DEPS luarocks)
-
-if(USE_BUNDLED_LUAJIT)
- add_dependencies(luarocks luajit)
-elseif(USE_BUNDLED_LUA)
- add_dependencies(luarocks lua)
-endif()
-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}
- 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}
- DEPENDS mpack)
-add_custom_target(lpeg DEPENDS ${ROCKS_DIR}/lpeg)
-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}
- DEPENDS lpeg)
- add_custom_target(luabitop DEPENDS ${ROCKS_DIR}/luabitop)
- list(APPEND THIRD_PARTY_DEPS luabitop)
-endif()
-
-if(USE_BUNDLED_BUSTED)
- if((NOT USE_BUNDLED_LUAJIT) AND USE_BUNDLED_LUA)
- set(PENLIGHT_DEPENDS luabitop)
- else()
- set(PENLIGHT_DEPENDS lpeg)
- endif()
-
- # penlight
- add_custom_command(OUTPUT ${ROCKS_DIR}/penlight
- COMMAND ${LUAROCKS_BINARY}
- ARGS build penlight 1.5.4-1 ${LUAROCKS_BUILDARGS}
- DEPENDS ${PENLIGHT_DEPENDS})
- add_custom_target(penlight DEPENDS ${ROCKS_DIR}/penlight)
-
- # busted
- if(WIN32)
- set(BUSTED_EXE "${HOSTDEPS_BIN_DIR}/busted.bat")
- set(LUACHECK_EXE "${HOSTDEPS_BIN_DIR}/luacheck.bat")
- else()
- set(BUSTED_EXE "${HOSTDEPS_BIN_DIR}/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}
- 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}
- DEPENDS busted)
- add_custom_target(luacheck DEPENDS ${LUACHECK_EXE})
-
- # luv
- set(LUV_DEPS luacheck)
- if(USE_BUNDLED_LUV)
- list(APPEND LUV_DEPS luv-static lua-compat-5.3)
- set(LUV_ARGS "CFLAGS=-O0 -g3 -fPIC")
- if(USE_BUNDLED_LIBUV)
- list(APPEND LUV_ARGS LIBUV_DIR=${HOSTDEPS_INSTALL_DIR})
- # workaround for bug introduced in
- # https://github.com/luarocks/luarocks/commit/83126ba324846b754ffc5e0345341f01262b3f86
- if(MSVC)
- list(APPEND LUV_ARGS LIBUV_LIBDIR=${HOSTDEPS_INSTALL_DIR}/lib)
- endif()
- endif()
- SET(LUV_PRIVATE_ARGS LUA_COMPAT53_INCDIR=${DEPS_BUILD_DIR}/src/lua-compat-5.3/c-api)
- add_custom_command(OUTPUT ${ROCKS_DIR}/luv
- COMMAND ${LUAROCKS_BINARY}
- ARGS make ${LUAROCKS_BUILDARGS} ${LUV_ARGS} ${LUV_PRIVATE_ARGS}
- WORKING_DIRECTORY ${DEPS_BUILD_DIR}/src/luv
- DEPENDS ${LUV_DEPS})
- else()
- add_custom_command(OUTPUT ${ROCKS_DIR}/luv
- COMMAND ${LUAROCKS_BINARY}
- ARGS build luv ${LUV_VERSION} ${LUAROCKS_BUILDARGS}
- DEPENDS ${LUV_DEPS})
- endif()
- add_custom_target(luv DEPENDS ${ROCKS_DIR}/luv)
-
- # 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}
- DEPENDS luv)
- add_custom_target(nvim-client DEPENDS ${ROCKS_DIR}/nvim-client)
-
- list(APPEND THIRD_PARTY_DEPS busted luacheck nvim-client)
-endif()
diff --git a/third-party/cmake/BuildLuv.cmake b/third-party/cmake/BuildLuv.cmake
deleted file mode 100644
index 6e9a333dc8..0000000000
--- a/third-party/cmake/BuildLuv.cmake
+++ /dev/null
@@ -1,133 +0,0 @@
-# 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")
-
-# Replace luv default rockspec with the alternate one under the "rockspecs"
-# directory
-set(LUV_PATCH_COMMAND
- ${CMAKE_COMMAND} -E copy_directory ${LUV_SRC_DIR}/rockspecs ${LUV_SRC_DIR})
-
-set(LUV_CONFIGURE_COMMAND_COMMON
- ${CMAKE_COMMAND} ${LUV_SRC_DIR}
- -DCMAKE_GENERATOR=${CMAKE_GENERATOR}
- -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
- -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
- -DBUILD_SHARED_LIBS=OFF
- -DBUILD_STATIC_LIBS=ON
- -DBUILD_MODULE=OFF)
-
-if(USE_BUNDLED_LUAJIT)
- list(APPEND LUV_CONFIGURE_COMMAND_COMMON -DWITH_LUA_ENGINE=LuaJit)
-elseif(USE_BUNDLED_LUA)
- list(APPEND LUV_CONFIGURE_COMMAND_COMMON -DWITH_LUA_ENGINE=Lua)
-else()
- find_package(LuaJit)
- if(LUAJIT_FOUND)
- list(APPEND LUV_CONFIGURE_COMMAND_COMMON -DWITH_LUA_ENGINE=LuaJit)
- else()
- list(APPEND LUV_CONFIGURE_COMMAND_COMMON -DWITH_LUA_ENGINE=Lua)
- endif()
-endif()
-
-if(USE_BUNDLED_LIBUV)
- set(LUV_CONFIGURE_COMMAND_COMMON
- ${LUV_CONFIGURE_COMMAND_COMMON}
- -DCMAKE_PREFIX_PATH=${DEPS_INSTALL_DIR})
-endif()
-
-if(MSVC)
- set(LUV_CONFIGURE_COMMAND
- ${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}"
- # Make sure we use the same generator, otherwise we may
- # accidentally end up using different MSVC runtimes
- -DCMAKE_GENERATOR=${CMAKE_GENERATOR})
-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")
- 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)
- 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})
-
-BuildLuv(PATCH_COMMAND ${LUV_PATCH_COMMAND}
- CONFIGURE_COMMAND ${LUV_CONFIGURE_COMMAND}
- BUILD_COMMAND ${LUV_BUILD_COMMAND}
- INSTALL_COMMAND ${LUV_INSTALL_COMMAND})
-
-list(APPEND THIRD_PARTY_DEPS luv-static)
-if(USE_BUNDLED_LUAJIT)
- add_dependencies(luv-static luajit)
-endif()
-if(USE_BUNDLED_LIBUV)
- add_dependencies(luv-static libuv)
-endif()
diff --git a/third-party/cmake/BuildMsgpack.cmake b/third-party/cmake/BuildMsgpack.cmake
deleted file mode 100644
index 10bf1c8e37..0000000000
--- a/third-party/cmake/BuildMsgpack.cmake
+++ /dev/null
@@ -1,66 +0,0 @@
-# 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
- -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR}
- -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
- -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
- -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES_ALT_SEP}
- "-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})
-
-if(MSVC)
- # Same as Unix without fPIC
- set(MSGPACK_CONFIGURE_COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/msgpack
- -DMSGPACK_BUILD_TESTS=OFF
- -DMSGPACK_BUILD_EXAMPLES=OFF
- -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR}
- -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
- -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM}
- "-DCMAKE_C_FLAGS:STRING=${CMAKE_C_COMPILER_ARG1}"
- -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
- # Make sure we use the same generator, otherwise we may
- # accidentally end up using different MSVC runtimes
- -DCMAKE_GENERATOR=${CMAKE_GENERATOR})
-endif()
-
-BuildMsgpack(CONFIGURE_COMMAND ${MSGPACK_CONFIGURE_COMMAND}
- BUILD_COMMAND ${MSGPACK_BUILD_COMMAND}
- INSTALL_COMMAND ${MSGPACK_INSTALL_COMMAND})
-
-list(APPEND THIRD_PARTY_DEPS msgpack)
diff --git a/third-party/cmake/BuildTreesitter.cmake b/third-party/cmake/BuildTreesitter.cmake
deleted file mode 100644
index 01fdb837e2..0000000000
--- a/third-party/cmake/BuildTreesitter.cmake
+++ /dev/null
@@ -1,59 +0,0 @@
-# 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
- ${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}
- -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
- -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}
- )
-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)
-endif()
-
-list(APPEND THIRD_PARTY_DEPS tree-sitter)
diff --git a/third-party/cmake/BuildTreesitterParsers.cmake b/third-party/cmake/BuildTreesitterParsers.cmake
deleted file mode 100644
index 11ffb792de..0000000000
--- a/third-party/cmake/BuildTreesitterParsers.cmake
+++ /dev/null
@@ -1,29 +0,0 @@
-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}
- -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
- -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR}
- -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES_ALT_SEP}
- # Pass toolchain
- -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}
- -DPARSERLANG=c
-
-BUILD_COMMAND ${CMAKE_COMMAND} --build . --config ${CMAKE_BUILD_TYPE}
-INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config ${CMAKE_BUILD_TYPE}
-LIST_SEPARATOR |)
diff --git a/third-party/cmake/BuildUnibilium.cmake b/third-party/cmake/BuildUnibilium.cmake
deleted file mode 100644
index 2f940bdfd3..0000000000
--- a/third-party/cmake/BuildUnibilium.cmake
+++ /dev/null
@@ -1,48 +0,0 @@
-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
- ${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}
- -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
- -DCMAKE_GENERATOR=${CMAKE_GENERATOR}
- BUILD_COMMAND ${CMAKE_COMMAND} --build . --config ${CMAKE_BUILD_TYPE}
- INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config ${CMAKE_BUILD_TYPE})
-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)
-endif()
-
-list(APPEND THIRD_PARTY_DEPS unibilium)
diff --git a/third-party/cmake/CopyFilesGlob.cmake b/third-party/cmake/CopyFilesGlob.cmake
deleted file mode 100644
index 8950ead1e5..0000000000
--- a/third-party/cmake/CopyFilesGlob.cmake
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copy multiple files to destination, based on a glob expression
-# - FROM_GLOB
-# - TO
-
-if(NOT FROM_GLOB)
- message(FATAL_ERROR "FROM_GLOB must be set")
-endif()
-if(NOT TO)
- message(FATAL_ERROR "TO must be set")
-endif()
-
-execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${TO})
-
-file(GLOB files ${FROM_GLOB})
-foreach(file ${files})
- execute_process(COMMAND ${CMAKE_COMMAND} -E copy ${file} ${TO} RESULT_VARIABLE rv)
- if(NOT rv EQUAL 0)
- message(FATAL_ERROR "Error copying ${file}")
- endif()
-endforeach()
diff --git a/third-party/cmake/DownloadAndExtractFile.cmake b/third-party/cmake/DownloadAndExtractFile.cmake
deleted file mode 100644
index abb1ddc81a..0000000000
--- a/third-party/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/third-party/cmake/GetBinaryDeps.cmake b/third-party/cmake/GetBinaryDeps.cmake
deleted file mode 100644
index 04e3f95a29..0000000000
--- a/third-party/cmake/GetBinaryDeps.cmake
+++ /dev/null
@@ -1,43 +0,0 @@
-# This is similar to the build recipes, but instead downloads a third party
-# binary and installs it under the DEPS_PREFIX.
-# The INSTALL_COMMAND is executed in the folder where downloaded files are
-# extracted and the ${DEPS_INSTALL_DIR} holds the path to the third-party
-# install root.
-function(GetBinaryDep)
- cmake_parse_arguments(_gettool
- "BUILD_IN_SOURCE"
- "TARGET"
- "INSTALL_COMMAND"
- ${ARGN})
-
- if(NOT _gettool_TARGET OR NOT _gettool_INSTALL_COMMAND)
- message(FATAL_ERROR "Must pass INSTALL_COMMAND and TARGET")
- endif()
-
- string(TOUPPER "${_gettool_TARGET}_URL" URL_VARNAME)
- string(TOUPPER "${_gettool_TARGET}_SHA256" HASH_VARNAME)
- set(URL ${${URL_VARNAME}})
- set(HASH ${${HASH_VARNAME}})
- if(NOT URL OR NOT HASH )
- message(FATAL_ERROR "${URL_VARNAME} and ${HASH_VARNAME} must be set")
- endif()
-
- ExternalProject_Add(${_gettool_TARGET}
- PREFIX ${DEPS_BUILD_DIR}
- URL ${URL}
- 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 ""
- INSTALL_COMMAND ${CMAKE_COMMAND} -E make_directory ${DEPS_INSTALL_DIR}/bin
- COMMAND "${_gettool_INSTALL_COMMAND}")
- list(APPEND THIRD_PARTY_DEPS ${__gettool_TARGET})
-endfunction()
diff --git a/third-party/cmake/GettextCMakeLists.txt b/third-party/cmake/GettextCMakeLists.txt
deleted file mode 100644
index c3f78716d0..0000000000
--- a/third-party/cmake/GettextCMakeLists.txt
+++ /dev/null
@@ -1,329 +0,0 @@
-cmake_minimum_required(VERSION 2.8.12)
-project(gettext C)
-
-# Adds PREFIX to each item in LIST
-macro(PREFIX_LIST_ITEMS LIST PREFIX)
- string(REPLACE ";" ";${PREFIX}" ${LIST} ";${${LIST}}")
-endmacro()
-
-file(READ gettext-runtime/config.h.in CONFIG_CONTENT)
-string(REPLACE "#undef HAVE_GETCWD" "#define HAVE_GETCWD 1" CONFIG_CONTENT ${CONFIG_CONTENT})
-string(REPLACE "#undef HAVE_LONG_LONG_INT" "#define HAVE_LONG_LONG_INT 1" CONFIG_CONTENT ${CONFIG_CONTENT})
-string(REPLACE "#undef HAVE_ICONV_H" "#define HAVE_ICONV_H 1" CONFIG_CONTENT ${CONFIG_CONTENT})
-string(REPLACE "#undef HAVE_ICONV" "#define HAVE_ICONV 1" CONFIG_CONTENT ${CONFIG_CONTENT})
-string(REPLACE "#undef ICONV_CONST" "#define ICONV_CONST const" CONFIG_CONTENT ${CONFIG_CONTENT})
-string(REPLACE "#undef uintmax_t" "
- #if _WIN64
- # define intmax_t long long
- # define uintmax_t unsigned long long
- #elif _WIN32
- # define intmax_t long
- # define uintmax_t unsigned long
- #endif"
- CONFIG_CONTENT ${CONFIG_CONTENT})
-file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/gettext-runtime/config.h ${CONFIG_CONTENT})
-
-set(HAVE_NEWLOCALE 0)
-set(HAVE_POSIX_PRINTF 0)
-set(HAVE_SNPRINTF 0)
-set(HAVE_ASPRINTF 0)
-set(HAVE_WPRINTF 0)
-set(HAVE_NAMELESS_LOCALES 0)
-set(HAVE_LONG_LONG_INT 1)
-configure_file(gettext-runtime/intl/libgnuintl.in.h
- ${CMAKE_CURRENT_BINARY_DIR}/gettext-runtime/intl/libgnuintl.h)
-
-set(LOCALDIR "gettext")
-set(LIBDIR "gettext")
-set(PKGDATADIR "gettext")
-set(PACKAGE_SUFFIX "gettext")
-add_definitions(-DLOCALEDIR=\"${LOCALDIR}\"
- -DLOCALE_ALIAS_PATH=\"${LOCALDIR}\"
- -DLIBDIR=\"${LOCALDIR}\"
- -DINSTALLDIR=\"${LOCALDIR}\"
- -DEXEEXT=\".exe\"
- -DLOCALEDIR=\"${LOCALDIR}\"
- -DLIBDIR=\"${LIBDIR}\"
- -DPACKAGE_SUFFIX=\"${PACKAGE_SUFFIX}\"
- -DGETTEXTDATADIR=\"${PKGDATADIR}\"
- -DBISON_LOCALEDIR=\"${LOCALDIR}\"
- -DHAVE_CONFIG_H)
-
-set(libintl_SOURCES
- bindtextdom.c dcgettext.c dcigettext.c dcngettext.c dgettext.c dngettext.c
- explodename.c finddomain.c gettext.c hash-string.c intl-compat.c l10nflist.c
- langprefs.c loadmsgcat.c localcharset.c localealias.c localename-table.c
- localename.c lock.c log.c ngettext.c osdep.c
- plural-exp.c plural.c printf.c relocatable.c setlocale.c textdomain.c
- threadlib.c version.c xsize.c)
-
-PREFIX_LIST_ITEMS(libintl_SOURCES "gettext-runtime/intl/")
-
-add_library(libintl ${libintl_SOURCES})
-target_link_libraries(libintl ${LIBICONV_LIBRARIES})
-set_property(TARGET libintl APPEND PROPERTY INCLUDE_DIRECTORIES
- ${CMAKE_CURRENT_BINARY_DIR}/gettext-runtime
- ${CMAKE_CURRENT_BINARY_DIR}/gettext-runtime/intl
- ${LIBICONV_INCLUDE_DIRS})
-set_property(TARGET libintl APPEND PROPERTY COMPILE_DEFINITIONS
- BUILDING_LIBINTL
- IN_LIBINTL
- ENABLE_RELOCATABLE=1
- IN_LIBRARY
- NO_XMALLOC
- set_relocation_prefix=libintl_set_relocation_prefix
- relocate=libintl_relocate
- HAVE_CONFIG_H
- _CRT_SECURE_NO_WARNINGS)
-
-
-file(READ gettext-tools/config.h.in CONFIG_CONTENT)
-string(REPLACE "#undef FLEXIBLE_ARRAY_MEMBER" "#define FLEXIBLE_ARRAY_MEMBER 1" CONFIG_CONTENT ${CONFIG_CONTENT})
-string(REPLACE "__declspec (dllimport)" "" CONFIG_CONTENT ${CONFIG_CONTENT})
-string(REPLACE "#undef ENDIANNESS" "#define ENDIANNESS 0" CONFIG_CONTENT ${CONFIG_CONTENT})
-string(REPLACE "#undef GNULIB_FWRITEERROR" "#define GNULIB_FWRITEERROR 1" CONFIG_CONTENT ${CONFIG_CONTENT})
-string(REPLACE "#undef HAVE_DECL_STRERROR_R" "#define HAVE_DECL_STRERROR_R 0" CONFIG_CONTENT ${CONFIG_CONTENT})
-string(REPLACE "#undef HAVE_DUP2" "#define HAVE_DUP2 1" CONFIG_CONTENT ${CONFIG_CONTENT})
-string(REPLACE "#undef HAVE_ICONV_H" "#define HAVE_ICONV_H 1" CONFIG_CONTENT ${CONFIG_CONTENT})
-string(REPLACE "#undef HAVE_ICONV" "#define HAVE_ICONV 1" CONFIG_CONTENT ${CONFIG_CONTENT})
-string(REPLACE "#undef HAVE_LIBUNISTRING" "#define HAVE_LIBUNISTRING 1" CONFIG_CONTENT ${CONFIG_CONTENT})
-string(REPLACE "#undef HAVE_STDINT_H_WITH_UINTMAX" "#define HAVE_STDINT_H_WITH_UINTMAX 1" CONFIG_CONTENT ${CONFIG_CONTENT})
-string(REPLACE "#undef HAVE_STDINT_H" "#define HAVE_STDINT_H 1" CONFIG_CONTENT ${CONFIG_CONTENT})
-string(REPLACE "#undef HAVE_LONG_LONG_INT" "#define HAVE_LONG_LONG_INT 1" CONFIG_CONTENT ${CONFIG_CONTENT})
-string(REPLACE "#undef HAVE_STRING_H" "#define HAVE_STRING_H 1" CONFIG_CONTENT ${CONFIG_CONTENT})
-string(REPLACE "#undef HAVE_SYS_TIMEB_H" "#define HAVE_SYS_TIMEB_H 1" CONFIG_CONTENT ${CONFIG_CONTENT})
-string(REPLACE "#undef HAVE__FTIME" "#define HAVE__FTIME 1" CONFIG_CONTENT ${CONFIG_CONTENT})
-string(REPLACE "#undef HAVE_FLOAT_H" "#define HAVE_FLOAT_H 1" CONFIG_CONTENT ${CONFIG_CONTENT})
-string(REPLACE "#undef ICONV_CONST" "#define ICONV_CONST const" CONFIG_CONTENT ${CONFIG_CONTENT})
-string(REPLACE "#undef PACKAGE" "#define PACKAGE \"gettext\"\n#define gettext_VERSION" CONFIG_CONTENT ${CONFIG_CONTENT})
-string(REPLACE "#undef VERSION" "#define VERSION \"\"" CONFIG_CONTENT ${CONFIG_CONTENT})
-string(REPLACE "#undef mode_t" "#define mode_t int" CONFIG_CONTENT ${CONFIG_CONTENT})
-string(REPLACE "#undef pid_t" "#define pid_t int" CONFIG_CONTENT ${CONFIG_CONTENT})
-string(REPLACE "#undef restrict" "#define restrict __restrict" CONFIG_CONTENT ${CONFIG_CONTENT})
-string(REPLACE "#undef ssize_t" "#include <BaseTsd.h>\n#define ssize_t SSIZE_T" CONFIG_CONTENT ${CONFIG_CONTENT})
-string(REPLACE "#undef uid_t" "#define uid_t int" CONFIG_CONTENT ${CONFIG_CONTENT})
-string(REPLACE "#undef HAVE_DECL___ARGV" "#define HAVE_DECL___ARGV 1" CONFIG_CONTENT ${CONFIG_CONTENT})
-set(CONFIG_CONTENT "${CONFIG_CONTENT}\n#define isatty libtextstyle_isatty")
-file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/gettext-tools/config.h ${CONFIG_CONTENT})
-
-set(libgettextsrc_COMMON_SOURCE
- message.c po-error.c po-xerror.c read-catalog-abstract.c po-lex.c
- po-gram-gen.c po-charset.c read-po.c read-properties.c read-stringtable.c
- open-catalog.c dir-list.c str-list.c)
-
-set(libgettextsrc_FORMAT_SOURCE
- format.c format-invalid.h format-c.c format-c-parse.h format-sh.c
- format-python.c format-python-brace.c format-lisp.c format-elisp.c
- format-librep.c format-scheme.c format-java.c format-csharp.c format-awk.c
- format-pascal.c format-ycp.c format-tcl.c format-perl.c format-perl-brace.c
- format-php.c format-gcc-internal.c format-gfc-internal.c format-qt.c
- format-qt-plural.c format-kde.c format-kde-kuit.c format-boost.c format-lua.c
- format-javascript.c)
-
-set(libgettextsrc_SOURCES
- ${libgettextsrc_COMMON_SOURCE} read-catalog.c
- write-catalog.c write-properties.c write-stringtable.c write-po.c
- msgl-ascii.c msgl-iconv.c msgl-equal.c msgl-cat.c msgl-header.c msgl-english.c
- msgl-check.c file-list.c msgl-charset.c po-time.c plural-exp.c plural-eval.c
- plural-table.c quote.h sentence.h sentence.c
- ${libgettextsrc_FORMAT_SOURCE}
- read-desktop.c locating-rule.c its.c search-path.c)
-PREFIX_LIST_ITEMS(libgettextsrc_SOURCES "gettext-tools/src/")
-
-set(GLIBC_SOURCE
- uniname/uniname.c javaexec.c unsetenv.c classpath.c setenv.c xsetenv.c
- sh-quote.c execute.c javaversion.c csharpcomp.c csharpexec.c javacomp.c
- gettimeofday.c getdtablesize.c fcntl.c dup-safer-flag.c cloexec.c
- fd-safer-flag.c fd-safer.c pipe2.c pipe2-safer.c spawn-pipe.c xmemdup0.c
- secure_getenv.c tmpdir.c tempname.c mkdtemp.c fnmatch.c clean-temp.c
- wait-process.c waitpid.c getdelim.c getline.c sigprocmask.c sigaction.c
- addext.c argmatch.c backupfile.c basename.c c-strcasecmp.c c-strncasecmp.c
- c-strstr.c closeout.c concat-filename.c error-progname.c error.c exitfail.c
- fstrcmp.c full-write.c fwriteerror.c getopt.c getopt1.c hash.c libxml/buf.c
- localcharset.c malloca.c mbchar.c mbslen.c mbsstr.c mbswidth.c obstack.c
- progname.c printf-args.c printf-parse.c propername.c quotearg.c rawmemchr.c
- safe-read.c safe-write.c stpcpy.c stpncpy.c strchrnul.c striconv.c
- striconveh.c striconveha.c strnlen1.c trim.c gcd.c gl_linkedhash_list.c
- uniconv/u8-conv-from-enc.c unictype/ctype_space.c unilbrk/lbrktables.c
- unilbrk/u8-possible-linebreaks.c unilbrk/u8-width-linebreaks.c
- unilbrk/ulc-common.c unilbrk/ulc-width-linebreaks.c unistr/u16-mbtouc-aux.c
- unistr/u16-mbtouc.c unistr/u8-check.c unistr/u8-mblen.c
- unistr/u8-mbtouc-aux.c unistr/u8-mbtouc-unsafe-aux.c
- unistr/u8-mbtouc-unsafe.c unistr/u8-mbtouc.c unistr/u8-mbtoucr.c
- unistr/u8-prev.c unistr/u8-uctomb-aux.c unistr/u8-uctomb.c uniwidth/width.c
- vasnprintf.c vasprintf.c wcwidth.c xasprintf.c xconcat-filename.c xerror.c
- xmalloc.c xstrdup.c xstriconv.c xstriconveh.c xvasprintf.c
- libxml/DOCBparser.c libxml/HTMLparser.c libxml/HTMLtree.c libxml/SAX.c
- libxml/SAX2.c libxml/c14n.c libxml/catalog.c libxml/chvalid.c
- libxml/debugXML.c libxml/dict.c libxml/encoding.c libxml/entities.c
- libxml/error.c libxml/globals.c libxml/hash.c libxml/legacy.c libxml/list.c
- libxml/nanoftp.c libxml/nanohttp.c libxml/parser.c libxml/parserInternals.c
- libxml/pattern.c libxml/relaxng.c libxml/schematron.c libxml/threads.c
- libxml/tree.c libxml/trionan.c libxml/uri.c libxml/valid.c libxml/xinclude.c
- libxml/xlink.c libxml/xmlIO.c libxml/xmlmemory.c libxml/xmlmodule.c
- libxml/xmlreader.c libxml/xmlregexp.c libxml/xmlsave.c libxml/xmlschemas.c
- libxml/xmlschemastypes.c libxml/xmlstring.c libxml/xmlunicode.c
- libxml/xmlwriter.c libxml/xpath.c libxml/xpointer.c fatal-signal.c
- copy-file.c read-file.c ftello.c utime.c gettime.c utimens.c)
-PREFIX_LIST_ITEMS(GLIBC_SOURCE "gettext-tools/gnulib-lib/")
-
-file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/gettext-tools/gnulib-lib/configmake.h "#define PKGDATADIR \"gettext\"")
-
-set(LIBGLIB_SOURCES
- ghash.c glist.c gmessages.c gprimes.c gstrfuncs.c gstring.c)
-PREFIX_LIST_ITEMS(LIBGLIB_SOURCES "libtextstyle/lib/glib/")
-
-set(LIBTEXTSTYLE_SOURCE
- gl_array_list.h gl_array_list.c binary-io.h
- binary-io.c c-ctype.h c-ctype.c c-strcase.h c-strcasecmp.c
- c-strncasecmp.c concat-filename.c dirname-lgpl.c
- basename-lgpl.c stripslash.c exitfail.c fatal-signal.h
- fatal-signal.c fd-hook.c fd-ostream.c file-ostream.c
- full-write.h full-write.c getprogname.h getprogname.c
- gettext.h hash.h hash.c html-ostream.c html-styled-ostream.c
- iconv-ostream.c gl_list.h gl_list.c math.c memory-ostream.c
- minmax.h noop-styled-ostream.c ostream.c safe-read.c
- safe-write.c sig-handler.c size_max.h styled-ostream.c
- term-ostream.c term-style-control.c term-styled-ostream.c
- unistd.c xalloc.h xmalloc.c xstrdup.c
- xconcat-filename.c gl_xlist.h gl_xlist.c xsize.h xsize.c
- xvasprintf.h xvasprintf.c xasprintf.c color.h color.c misc.h
- misc.c version.c isatty.c fsync.c tparm.c tputs.c)
-PREFIX_LIST_ITEMS(LIBTEXTSTYLE_SOURCE "libtextstyle/lib/")
-
-configure_file(
- libtextstyle/lib/stdbool.mini.h
- ${CMAKE_CURRENT_BINARY_DIR}/libtextstyle/lib/textstyle/stdbool.h
- COPYONLY)
-
-set(LIBCROCO_SOURCES
- cr-additional-sel.c cr-attr-sel.c cr-cascade.c cr-declaration.c
- cr-doc-handler.c cr-enc-handler.c cr-fonts.c cr-input.c cr-num.c
- cr-om-parser.c cr-parser.c cr-parsing-location.c cr-prop-list.c cr-pseudo.c
- cr-rgb.c cr-sel-eng.c cr-selector.c cr-simple-sel.c cr-statement.c
- cr-string.c cr-style.c cr-stylesheet.c cr-term.c cr-tknzr.c cr-token.c
- cr-utils.c)
-PREFIX_LIST_ITEMS(LIBCROCO_SOURCES "libtextstyle/lib/libcroco/")
-
-set(libgettextsrc_SOURCES
- ${libgettextsrc_SOURCES} ${GLIBC_SOURCE} ${LIBGLIB_SOURCES}
- ${LIBTEXTSTYLE_SOURCE} ${LIBCROCO_SOURCES})
-
-macro(CONFIGURE_HEADER_FILES HEADER_TEMPLATES_PATH)
- set(HEADER_TEMPLATES_ABS_PATH "${CMAKE_CURRENT_SOURCE_DIR}/${HEADER_TEMPLATES_PATH}")
- file(GLOB_RECURSE HEADER_TEMPLATES "${HEADER_TEMPLATES_ABS_PATH}/*.in.h")
- list(REMOVE_ITEM HEADER_TEMPLATES "${HEADER_TEMPLATES_ABS_PATH}/stdint.in.h")
- list(REMOVE_ITEM HEADER_TEMPLATES "${HEADER_TEMPLATES_ABS_PATH}/wchar.in.h")
- foreach(HEADER_TEMPLATE ${HEADER_TEMPLATES})
- file(READ ${HEADER_TEMPLATE} HEADER_CONTENT)
- string(REPLACE "/* The definition of _GL_ARG_NONNULL is copied here. */" "#include \"arg-nonnull.h\"" HEADER_CONTENT "${HEADER_CONTENT}")
- string(REPLACE "/* The definition of _GL_WARN_ON_USE is copied here. */" "#include \"warn-on-use.h\"" HEADER_CONTENT "${HEADER_CONTENT}")
- string(REPLACE "/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */" "#include \"c++defs.h\"" HEADER_CONTENT "${HEADER_CONTENT}")
- string(REPLACE "@GNULIB_LSTAT@" "1" HEADER_CONTENT "${HEADER_CONTENT}")
- string(REPLACE "@GNULIB_MBSINIT@" "1" HEADER_CONTENT "${HEADER_CONTENT}")
- string(REPLACE "@GNULIB_SIGACTION@" "1" HEADER_CONTENT "${HEADER_CONTENT}")
- string(REPLACE "@GNULIB_SIGPROCMASK@" "1" HEADER_CONTENT "${HEADER_CONTENT}")
- string(REPLACE "@GNULIB_STPCPY@" "1" HEADER_CONTENT "${HEADER_CONTENT}")
- string(REPLACE "@GNULIB_STPNCPY@" "1" HEADER_CONTENT "${HEADER_CONTENT}")
- string(REPLACE "@GNULIB_STRCHRNUL@" "1" HEADER_CONTENT "${HEADER_CONTENT}")
- string(REPLACE "@HAVE_ISWCNTRL@" "1" HEADER_CONTENT "${HEADER_CONTENT}")
- string(REPLACE "@HAVE_WCTYPE_T@" "1" HEADER_CONTENT "${HEADER_CONTENT}")
- string(REPLACE "@HAVE_STRUCT_TIMEVAL@" "1" HEADER_CONTENT "${HEADER_CONTENT}")
- string(REPLACE "@HAVE_WINSOCK2_H@" "1" HEADER_CONTENT "${HEADER_CONTENT}")
- string(REPLACE "@DLL_VARIABLE@" "" HEADER_CONTENT "${HEADER_CONTENT}")
- string(REPLACE "@HAVE_NEWLOCALE@" "0" HEADER_CONTENT "${HEADER_CONTENT}")
- string(REPLACE "@PRAGMA_COLUMNS@" "" HEADER_CONTENT "${HEADER_CONTENT}")
- string(REPLACE "#if @GNULIB_UTIME@" "#if 1\n#define utime gl_utime" HEADER_CONTENT "${HEADER_CONTENT}")
- string(REPLACE "@HAVE_UTIME@" "1" HEADER_CONTENT "${HEADER_CONTENT}")
- string(REPLACE "@HAVE_LONG_LONG_INT@" "1" HEADER_CONTENT "${HEADER_CONTENT}")
-
- string(REGEX REPLACE "^${HEADER_TEMPLATES_ABS_PATH}/" "" HEADER_PATH "${HEADER_TEMPLATE}")
- string(REPLACE ".in" "" HEADER_PATH ${HEADER_PATH})
- string(REPLACE "_" "/" HEADER_PATH ${HEADER_PATH})
- # find_file will create a cache entry for the variable
- # SYSTEM_HEADER, so reset it before each call
- set(SYSTEM_HEADER "SYSTEM_HEADER-NOTFOUND")
- find_file(SYSTEM_HEADER ${HEADER_PATH} PATHS "${LIBICONV_INCLUDE_DIRS}")
- if(SYSTEM_HEADER)
- # Gnulib uses #include_next to extend system header files,
- # but MSVC doesn't support it, so a regular include directive
- # with a relative path is used instead
- string(REGEX REPLACE ".*/(.*/${HEADER_PATH})" "../\\1"
- INCLUDE_PATH "${SYSTEM_HEADER}")
- string(REGEX REPLACE "@INCLUDE_NEXT[^@]*@ @NEXT_[^@\n]+@"
- "include <${INCLUDE_PATH}>" HEADER_CONTENT "${HEADER_CONTENT}")
- endif()
-
- # Default any remaining template variables to 0
- string(REGEX REPLACE "@[^@\n]+@" "0" HEADER_CONTENT "${HEADER_CONTENT}")
-
- file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/${HEADER_TEMPLATES_PATH}/${HEADER_PATH}" "${HEADER_CONTENT}")
- endforeach()
-endmacro()
-
-CONFIGURE_HEADER_FILES("gettext-tools/gnulib-lib")
-CONFIGURE_HEADER_FILES("libtextstyle/lib")
-
-add_library(libgettextsrc ${libgettextsrc_SOURCES})
-target_link_libraries(libgettextsrc ${LIBICONV_LIBRARIES})
-set_property(TARGET libgettextsrc APPEND PROPERTY COMPILE_DEFINITIONS
- LIBTEXTSTYLE_DLL_VARIABLE=)
-
-set(msgmerge_SOURCES
- msgmerge.c msgl-fsearch.c lang-table.c plural-count.c)
-PREFIX_LIST_ITEMS(msgmerge_SOURCES "gettext-tools/src/")
-
-add_executable(msgmerge ${msgmerge_SOURCES})
-target_link_libraries(msgmerge libgettextsrc)
-add_dependencies(msgmerge libgettextsrc libintl)
-
-set(msgfmt_SOURCES
- msgfmt.c write-mo.c write-java.c write-csharp.c write-resources.c write-tcl.c
- write-qt.c write-desktop.c write-xml.c
- ../../gettext-runtime/intl/hash-string.c)
-PREFIX_LIST_ITEMS(msgfmt_SOURCES "gettext-tools/src/")
-
-add_executable(msgfmt ${msgfmt_SOURCES})
-target_link_libraries(msgfmt libgettextsrc)
-add_dependencies(msgfmt libgettextsrc libintl)
-
-set(xgettext_SOURCES
- xgettext.c xg-pos.c xg-encoding.c xg-mixed-string.c xg-arglist-context.c
- xg-arglist-callshape.c xg-arglist-parser.c xg-message.c x-c.c x-po.c x-sh.c
- x-python.c x-lisp.c x-elisp.c x-librep.c x-scheme.c x-smalltalk.c x-java.c
- x-csharp.c x-awk.c x-ycp.c x-tcl.c x-perl.c x-php.c x-rst.c x-lua.c
- x-javascript.c x-vala.c x-desktop.c)
-PREFIX_LIST_ITEMS(xgettext_SOURCES "gettext-tools/src/")
-
-add_executable(xgettext ${xgettext_SOURCES})
-target_link_libraries(xgettext libgettextsrc)
-add_dependencies(xgettext libgettextsrc libintl)
-
-set_property(TARGET msgmerge msgfmt xgettext libgettextsrc APPEND PROPERTY
- INCLUDE_DIRECTORIES
- ${CMAKE_CURRENT_SOURCE_DIR}/gettext-runtime/intl
- ${CMAKE_CURRENT_SOURCE_DIR}/gettext-tools/libgettextpo
- ${CMAKE_CURRENT_SOURCE_DIR}/gettext-tools/gnulib-lib
- ${CMAKE_CURRENT_SOURCE_DIR}/gettext-tools/gnulib-lib/libcroco
- ${CMAKE_CURRENT_SOURCE_DIR}/build-aux/snippet
- ${CMAKE_CURRENT_SOURCE_DIR}/libtextstyle/lib
- ${CMAKE_CURRENT_SOURCE_DIR}/libtextstyle/lib/libcroco
- ${CMAKE_CURRENT_BINARY_DIR}/gettext-runtime/intl
- ${CMAKE_CURRENT_BINARY_DIR}/gettext-tools
- ${CMAKE_CURRENT_BINARY_DIR}/gettext-tools/gnulib-lib
- ${CMAKE_CURRENT_BINARY_DIR}/libtextstyle/lib
- ${CMAKE_CURRENT_BINARY_DIR}/libtextstyle/lib/textstyle
- ${LIBICONV_INCLUDE_DIRS})
-
-include(GNUInstallDirs)
-
-install(FILES
- ${CMAKE_CURRENT_BINARY_DIR}/gettext-runtime/intl/libgnuintl.h
- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
- RENAME libintl.h)
-
-install(TARGETS libintl msgmerge msgfmt xgettext
- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
- PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
diff --git a/third-party/cmake/LibiconvCMakeLists.txt b/third-party/cmake/LibiconvCMakeLists.txt
deleted file mode 100644
index 8ad3cc9352..0000000000
--- a/third-party/cmake/LibiconvCMakeLists.txt
+++ /dev/null
@@ -1,97 +0,0 @@
-cmake_minimum_required(VERSION 2.8.12)
-project(libiconv C)
-
-include_directories(
- ${CMAKE_CURRENT_SOURCE_DIR}
- ${CMAKE_CURRENT_SOURCE_DIR}/srclib
- ${CMAKE_CURRENT_BINARY_DIR}
- ${CMAKE_CURRENT_BINARY_DIR}/srclib
- ${CMAKE_CURRENT_SOURCE_DIR}/build-aux/snippet)
-
-configure_file(config.h.in config.h)
-file(READ "${CMAKE_CURRENT_BINARY_DIR}/config.h" CONFIG_CONTENT)
-string(REPLACE "#undef EILSEQ" "" CONFIG_CONTENT "${CONFIG_CONTENT}")
-string(REPLACE "#undef HAVE_MBRTOWC" "#define HAVE_MBRTOWC 1" CONFIG_CONTENT "${CONFIG_CONTENT}")
-string(REPLACE "#undef HAVE_MBSINIT" "#define HAVE_MBSINIT 1" CONFIG_CONTENT "${CONFIG_CONTENT}")
-string(REPLACE "#undef HAVE_WCRTOMB" "#define HAVE_WCRTOMB 1" CONFIG_CONTENT "${CONFIG_CONTENT}")
-string(REPLACE "#undef HAVE_DECL___ARGV" "#define HAVE_DECL___ARGV 1" CONFIG_CONTENT "${CONFIG_CONTENT}")
-string(REPLACE "#undef HAVE_WORKING_O_NOFOLLOW" "#define HAVE_WORKING_O_NOFOLLOW 0" CONFIG_CONTENT "${CONFIG_CONTENT}")
-string(REPLACE "#undef ICONV_CONST" "#define ICONV_CONST const" CONFIG_CONTENT "${CONFIG_CONTENT}")
-string(REPLACE "#undef WORDS_LITTLEENDIAN" "#define WORDS_LITTLEENDIAN 1" CONFIG_CONTENT "${CONFIG_CONTENT}")
-string(REPLACE "#undef HAVE_DECL_STRERROR_R" "#define HAVE_DECL_STRERROR_R 0" CONFIG_CONTENT "${CONFIG_CONTENT}")
-string(REPLACE "#undef mode_t" "#define mode_t int" CONFIG_CONTENT "${CONFIG_CONTENT}")
-string(REPLACE "#undef ssize_t" "#include <BaseTsd.h>\n#define ssize_t SSIZE_T" CONFIG_CONTENT "${CONFIG_CONTENT}")
-file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/config.h" "${CONFIG_CONTENT}")
-
-set(BROKEN_WCHAR_H 0)
-set(HAVE_VISIBILITY 0)
-set(HAVE_WCHAR_T 1)
-set(ICONV_CONST "const")
-set(USE_MBSTATE_T 0)
-configure_file(libcharset/include/localcharset.h.build.in localcharset.h)
-configure_file(include/iconv.h.build.in iconv.h)
-
-add_definitions(-DLIBDIR -D_CRT_SECURE_NO_WARNINGS)
-
-add_library(libcharset libcharset/lib/localcharset.c)
-
-add_library(libiconv lib/iconv.c)
-target_link_libraries(libiconv libcharset)
-
-add_executable(iconv src/iconv.c srclib/progname.c srclib/getprogname.c
- srclib/safe-read.c srclib/uniwidth/width.c srclib/error.c srclib/xmalloc.c
- srclib/basename-lgpl.c)
-target_link_libraries(iconv libiconv)
-
-set(HEADER_TEMPLATES_PATH "srclib")
-set(HEADER_TEMPLATES_ABS_PATH "${CMAKE_CURRENT_SOURCE_DIR}/${HEADER_TEMPLATES_PATH}")
-file(GLOB_RECURSE HEADER_TEMPLATES "${HEADER_TEMPLATES_ABS_PATH}/*.in.h")
-list(REMOVE_ITEM HEADER_TEMPLATES "${HEADER_TEMPLATES_ABS_PATH}/stdint.in.h")
-list(REMOVE_ITEM HEADER_TEMPLATES "${HEADER_TEMPLATES_ABS_PATH}/wchar.in.h")
-foreach(HEADER_TEMPLATE ${HEADER_TEMPLATES})
- file(READ ${HEADER_TEMPLATE} HEADER_CONTENT)
- string(REPLACE "/* The definition of _GL_ARG_NONNULL is copied here. */" "#include \"arg-nonnull.h\"" HEADER_CONTENT "${HEADER_CONTENT}")
- string(REPLACE "/* The definition of _GL_WARN_ON_USE is copied here. */" "#include \"warn-on-use.h\"" HEADER_CONTENT "${HEADER_CONTENT}")
- string(REPLACE "/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */" "#include \"c++defs.h\"" HEADER_CONTENT "${HEADER_CONTENT}")
- string(REPLACE "@GNULIB_LSTAT@" "1" HEADER_CONTENT "${HEADER_CONTENT}")
- string(REPLACE "@GNULIB_SIGACTION@" "1" HEADER_CONTENT "${HEADER_CONTENT}")
- string(REPLACE "@GNULIB_SIGPROCMASK@" "1" HEADER_CONTENT "${HEADER_CONTENT}")
- string(REPLACE "@HAVE_ISWCNTRL@" "1" HEADER_CONTENT "${HEADER_CONTENT}")
- string(REPLACE "@HAVE_WCTYPE_T@" "1" HEADER_CONTENT "${HEADER_CONTENT}")
- string(REPLACE "@PRAGMA_COLUMNS@" "" HEADER_CONTENT "${HEADER_CONTENT}")
-
- string(REGEX REPLACE "^${HEADER_TEMPLATES_ABS_PATH}/" "" HEADER_PATH "${HEADER_TEMPLATE}")
- string(REPLACE ".in" "" HEADER_PATH ${HEADER_PATH})
- string(REPLACE "_" "/" HEADER_PATH ${HEADER_PATH})
- # find_file will create a cache entry for the variable
- # SYSTEM_HEADER, so reset it before each call
- set(SYSTEM_HEADER "SYSTEM_HEADER-NOTFOUND")
- find_file(SYSTEM_HEADER ${HEADER_PATH} PATHS "${LIBICONV_INCLUDE_DIRS}")
- if(SYSTEM_HEADER)
- # Gnulib uses #include_next to extend system header files,
- # but MSVC doesn't support it, so a regular include directive
- # with a relative path is used instead
- string(REGEX REPLACE ".*/(.*/${HEADER_PATH})" "../\\1"
- INCLUDE_PATH "${SYSTEM_HEADER}")
- string(REGEX REPLACE "@INCLUDE_NEXT[^@]*@ @NEXT_[^@\n]+@"
- "include <${INCLUDE_PATH}>" HEADER_CONTENT "${HEADER_CONTENT}")
- endif()
-
- # Default any remaining template variables to 0
- string(REGEX REPLACE "@[^@\n]+@" "0" HEADER_CONTENT "${HEADER_CONTENT}")
-
- file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/${HEADER_TEMPLATES_PATH}/${HEADER_PATH}" "${HEADER_CONTENT}")
-endforeach()
-
-include(GNUInstallDirs)
-
-install(FILES
- ${CMAKE_CURRENT_BINARY_DIR}/iconv.h
- ${CMAKE_CURRENT_BINARY_DIR}/localcharset.h
- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
-
-install(TARGETS libcharset libiconv iconv
- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
- PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
diff --git a/third-party/cmake/LibuvCMakeLists.txt b/third-party/cmake/LibuvCMakeLists.txt
deleted file mode 100644
index 0432319834..0000000000
--- a/third-party/cmake/LibuvCMakeLists.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-cmake_minimum_required(VERSION 2.8.12)
-project(libuv LANGUAGES C)
-
-file(GLOB UV_SOURCES_COMMON src/*.c)
-file(GLOB UV_SOURCES_WIN src/win/*.c)
-
-add_library(uv ${UV_SOURCES_COMMON} ${UV_SOURCES_WIN})
-target_compile_definitions(uv PRIVATE WIN32_LEAN_AND_MEAN "_WIN32_WINNT=0x0600")
-target_link_libraries(uv iphlpapi psapi shell32 userenv ws2_32)
-target_include_directories(uv PUBLIC ./include PRIVATE ./src)
-if(BUILD_SHARED_LIBS)
- set_target_properties(uv PROPERTIES DEFINE_SYMBOL BUILDING_UV_SHARED)
-endif()
-
-install(FILES
- include/uv.h
- DESTINATION include)
-
-install(FILES
- include/uv/errno.h
- include/uv/threadpool.h
- include/uv/tree.h
- include/uv/version.h
- include/uv/win.h
- DESTINATION include/uv)
-
-include(GNUInstallDirs)
-install(TARGETS uv
- PUBLIC_HEADER
- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
- PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
diff --git a/third-party/cmake/Libvterm-tbl2inc_c.cmake b/third-party/cmake/Libvterm-tbl2inc_c.cmake
deleted file mode 100644
index 7a82f4248b..0000000000
--- a/third-party/cmake/Libvterm-tbl2inc_c.cmake
+++ /dev/null
@@ -1,163 +0,0 @@
-cmake_minimum_required(VERSION 2.8.12)
-
-set(HEX_ALPHABET "0123456789abcdef")
-
-function(ConvertToHex dec hex)
- while(dec GREATER 0)
- math(EXPR _val "${dec} % 16")
- math(EXPR dec "${dec} / 16")
- string(SUBSTRING ${HEX_ALPHABET} ${_val} 1 _val)
- set(_res "${_val}${_res}")
- endwhile()
- # Pad the result with the number of zeros
- # specified by the optional third argument
- if(${ARGC} EQUAL 3)
- set(padding ${ARGV2})
- string(LENGTH ${_res} _resLen)
- if(_resLen LESS ${padding})
- math(EXPR _neededPadding "${padding} - ${_resLen}")
- foreach(i RANGE 1 ${_neededPadding})
- set(_res "0${_res}")
- endforeach()
- endif()
- endif()
- set(${hex} "0x${_res}" PARENT_SCOPE)
-endfunction()
-
-function(ConvertFromHex hex dec)
- string(TOLOWER ${hex} hex)
- string(LENGTH "${hex}" _strlen)
- set(_res 0)
- while(_strlen GREATER 0)
- math(EXPR _res "${_res} * 16")
- string(SUBSTRING "${hex}" 0 1 NIBBLE)
- string(SUBSTRING "${hex}" 1 -1 hex)
- string(FIND ${HEX_ALPHABET} ${NIBBLE} value)
- if(value EQUAL -1)
- message(FATAL_ERROR "Invalid hex character '${NIBBLE}'")
- endif()
- math(EXPR _res "${_res} + ${value}")
- string(LENGTH "${hex}" _strlen)
- endwhile()
- set(${dec} ${_res} PARENT_SCOPE)
-endfunction()
-
-# Based on http://www.json.org/JSON_checker/utf8_decode.c
-function(DecodeUtf8 hexBytes codePoint)
- string(SUBSTRING ${hexBytes} 0 2 hexByte1)
- ConvertFromHex(${hexByte1} byte1)
- # Zero continuations (0 to 127)
- math(EXPR out "${byte1} & 128")
- if(out EQUAL 0)
- set(${codePoint} ${byte1} PARENT_SCOPE)
- return()
- endif()
- # One continuation (128 to 2047)
- math(EXPR out "${byte1} & 224")
- if(out EQUAL 192)
- string(SUBSTRING ${hexBytes} 2 2 hexByte2)
- ConvertFromHex(${hexByte2} byte2)
- math(EXPR result "((${byte1} & 31) << 6) | ${byte2}")
- if(result GREATER 127)
- set(${codePoint} ${result} PARENT_SCOPE)
- return()
- endif()
- else()
- # Two continuations (2048 to 55295 and 57344 to 65535)
- math(EXPR result "${byte1} & 240")
- if(result EQUAL 224)
- string(SUBSTRING ${hexBytes} 2 2 hexByte2)
- string(SUBSTRING ${hexBytes} 4 2 hexByte3)
- ConvertFromHex(${hexByte2} byte2)
- ConvertFromHex(${hexByte3} byte3)
- math(EXPR result "${byte2} | ${byte3}")
- if(result GREATER -1)
- math(EXPR result "((${byte1} & 15) << 12) | (${byte2} << 6) | ${byte3}")
- if((result GREATER 2047) AND (result LESS 55296 OR result GREATER 57343))
- set(${codePoint} ${result} PARENT_SCOPE)
- return()
- endif()
- endif()
- else()
- # Three continuations (65536 to 1114111)
- math(EXPR result "${byte1} & 248")
- if(result EQUAL 224)
- string(SUBSTRING ${hexBytes} 2 2 hexByte2)
- string(SUBSTRING ${hexBytes} 4 2 hexByte3)
- string(SUBSTRING ${hexBytes} 6 2 hexByte4)
- ConvertFromHex(${hexByte2} byte2)
- ConvertFromHex(${hexByte3} byte3)
- ConvertFromHex(${hexByte4} byte4)
- math(EXPR result "${byte2} | ${byte3} | ${byte4}")
- if(result GREATER -1)
- math(EXPR result "((c & 7) << 18) | (c1 << 12) | (c2 << 6) | c3")
- if((result GREATER 65535) AND (result LESS 1114112))
- set(${codePoint} ${result} PARENT_SCOPE)
- return()
- endif()
- endif()
- endif()
- endif()
- endif()
- message(FATAL_ERROR "Invalid UTF-8 encoding")
-endfunction()
-
-set(inputFile ${CMAKE_ARGV3})
-set(outputFile ${CMAKE_ARGV4})
-# Get the file contents in text and hex-encoded format because
-# CMake doesn't provide functions for converting between the two
-file(READ "${inputFile}" contents)
-file(READ "${inputFile}" hexContents HEX)
-
-# Convert the text contents into a list of lines by escaping
-# the list separator ';' and then replacing new line characters
-# with the list separator
-string(REGEX REPLACE ";" "\\\\;" contents ${contents})
-string(REGEX REPLACE "\n" ";" contents ${contents})
-
-get_filename_component(encname ${inputFile} NAME_WE)
-set(output
- "static const struct StaticTableEncoding encoding_${encname} = {\n"
- " { .decode = &decode_table },\n"
- " {")
-set(hexIndex 0)
-foreach(line ${contents})
- string(LENGTH ${line} lineLength)
- # Convert "A" to 0x41
- string(FIND ${line} "\"" beginQuote)
- if(NOT ${beginQuote} EQUAL -1)
- string(FIND ${line} "\"" endQuote REVERSE)
- if(${beginQuote} EQUAL ${endQuote})
- message(FATAL_ERROR "Line contains only one quote")
- endif()
- math(EXPR beginHexQuote "${hexIndex} + (${beginQuote} + 1)*2")
- math(EXPR endHexQuote "${hexIndex} + (${endQuote} + 1)*2")
- math(EXPR quoteLen "${endHexQuote} - ${beginHexQuote} - 1")
- string(SUBSTRING ${hexContents} ${beginHexQuote} ${quoteLen} hexQuote)
- DecodeUtf8(${hexQuote} codePoint)
- ConvertToHex(${codePoint} hexCodePoint 4)
- STRING(REGEX REPLACE "\"(.+)\"" ${hexCodePoint} line ${line})
- endif()
- # Strip comment
- string(REGEX REPLACE "[ \t\n]*#.*" "" line ${line})
- # Convert 3/1 to [0x31]
- string(REGEX REPLACE "^([0-9]+)/([0-9]+).*" "\\1;\\2" numbers ${line})
- list(GET numbers 0 upperBits)
- list(GET numbers 1 lowerBits)
- math(EXPR res "${upperBits}*16 + ${lowerBits}")
- ConvertToHex(${res} hex 2)
- string(REGEX REPLACE "^([0-9]+)/([0-9]+)" "[${hex}]" line ${line})
- # Convert U+0041 to 0x0041
- string(REPLACE "U+" "0x" line ${line})
- # Indent and append a comma
- set(line " ${line},")
- set(output "${output}\n${line}")
- # Increment the index by the number of characters in the line,
- # plus one for the new line character then multiple by two for the hex digit index
- math(EXPR hexIndex "${hexIndex} + 2*(${lineLength} + 1)")
-endforeach()
-set(output "${output}\n"
- " }\n"
- "}\;\n")
-
-file(WRITE ${outputFile} ${output})
diff --git a/third-party/cmake/LibvtermCMakeLists.txt b/third-party/cmake/LibvtermCMakeLists.txt
deleted file mode 100644
index 16c4d542c4..0000000000
--- a/third-party/cmake/LibvtermCMakeLists.txt
+++ /dev/null
@@ -1,92 +0,0 @@
-cmake_minimum_required(VERSION 2.8.12)
-project(libvterm LANGUAGES C)
-
-include(GNUInstallDirs)
-find_package(Perl)
-
-if(MSVC)
- add_compile_options(/W3)
- add_definitions(-D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE)
-else()
- add_compile_options(-Wall -std=c99)
-endif()
-
-# Generate includes from tables
-file(GLOB TBL_FILES ${CMAKE_SOURCE_DIR}/src/encoding/*.tbl)
-set(TBL_FILES_HEADERS)
-foreach(file ${TBL_FILES})
- get_filename_component(basename ${file} NAME_WE)
- set(tname encoding/${basename}.inc)
- add_custom_command(OUTPUT
- COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/encoding/
- COMMAND ${CMAKE_COMMAND} -P ${CMAKE_SOURCE_DIR}/tbl2inc_c.cmake ${file} ${CMAKE_BINARY_DIR}/${tname}
- COMMENT "Generating ${tname}"
- OUTPUT ${CMAKE_BINARY_DIR}/${tname}
- )
- list(APPEND TBL_FILES_HEADERS ${tname})
- # Only used for verifying that the output of tbl2inc_c.cmake is correct
- set(tname encoding-test/${basename}.inc)
- add_custom_command(OUTPUT
- COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/encoding-test/
- COMMAND ${PERL_EXECUTABLE} -CSD ${CMAKE_SOURCE_DIR}/tbl2inc_c.pl ${file} > ${CMAKE_BINARY_DIR}/${tname}
- COMMENT "Generating ${tname}"
- OUTPUT ${CMAKE_BINARY_DIR}/${tname}
- )
-endforeach()
-
-include_directories(${CMAKE_SOURCE_DIR}/include)
-include_directories(${CMAKE_BINARY_DIR})
-
-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)
-
-if(NOT WIN32)
- file(GLOB BIN_SOURCES ${CMAKE_SOURCE_DIR}/bin/*.c)
- foreach(EXE_C ${BIN_SOURCES})
- get_filename_component(target_name ${EXE_C} NAME_WE)
- add_executable(${target_name} ${EXE_C})
- target_link_libraries(${target_name} vterm)
- install(TARGETS ${target_name} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
- endforeach()
-endif()
-
-# Tests
-add_executable(harness EXCLUDE_FROM_ALL t/harness.c)
-target_link_libraries(harness vterm)
-set_target_properties(harness PROPERTIES
- # run-test.pl expects to find the harness in t/.libs/
- RUNTIME_OUTPUT_DIRECTORY t/.libs)
-
-if(Perl_FOUND)
- file(GLOB TESTFILES ${CMAKE_SOURCE_DIR}/t/*.test)
- add_custom_target(check)
- foreach(testfile ${TESTFILES})
- get_filename_component(target_name ${testfile} NAME_WE)
- add_custom_target(${target_name}
- COMMAND ${PERL_EXECUTABLE} ${CMAKE_SOURCE_DIR}/t/run-test.pl ${testfile}
- COMMENT "**${target_name} **"
- DEPENDS harness)
- add_dependencies(check ${target_name})
- endforeach()
-
- foreach(header_path ${TBL_FILES_HEADERS})
- get_filename_component(header_name ${header_path} NAME)
- set(perl_header_path ${CMAKE_BINARY_DIR}/encoding-test/${header_name})
- add_custom_target(test-${header_name}
- COMMAND ${CMAKE_COMMAND} -E compare_files
- ${header_path} ${perl_header_path}
- DEPENDS ${header_path} ${perl_header_path})
- endforeach()
-endif()
diff --git a/third-party/cmake/RemoveFiles.cmake b/third-party/cmake/RemoveFiles.cmake
deleted file mode 100644
index 88e2bc70a6..0000000000
--- a/third-party/cmake/RemoveFiles.cmake
+++ /dev/null
@@ -1,5 +0,0 @@
-file(GLOB_RECURSE FILES_TO_REMOVE ${REMOVE_FILE_GLOB})
-
-if(FILES_TO_REMOVE)
- file(REMOVE ${FILES_TO_REMOVE})
-endif()
diff --git a/third-party/cmake/TargetArch.cmake b/third-party/cmake/TargetArch.cmake
deleted file mode 100644
index 71ea44ec59..0000000000
--- a/third-party/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")
diff --git a/third-party/cmake/TreesitterCMakeLists.txt b/third-party/cmake/TreesitterCMakeLists.txt
deleted file mode 100644
index 9e3ba3eeda..0000000000
--- a/third-party/cmake/TreesitterCMakeLists.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-cmake_minimum_required(VERSION 2.8.12)
-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})
-
-install(FILES
- lib/include/tree_sitter/api.h
- lib/include/tree_sitter/parser.h
- DESTINATION include/tree_sitter)
-
-include(GNUInstallDirs)
-install(TARGETS tree-sitter
- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
diff --git a/third-party/cmake/TreesitterParserCMakeLists.txt b/third-party/cmake/TreesitterParserCMakeLists.txt
deleted file mode 100644
index 2808a9ee14..0000000000
--- a/third-party/cmake/TreesitterParserCMakeLists.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-cmake_minimum_required(VERSION 2.8.12)
-# some parsers have c++ scanner, problem?
-project(parser C) # CXX
-
-add_library(parser
- MODULE
- src/parser.c
-)
-set_target_properties(
- parser
- PROPERTIES
- POSITION_INDEPENDENT_CODE ON
- OUTPUT_NAME ${PARSERLANG}
- PREFIX ""
-)
-
-include_directories(src)
-
-install(TARGETS parser LIBRARY DESTINATION lib/nvim/parser)
diff --git a/third-party/cmake/UnibiliumCMakeLists.txt b/third-party/cmake/UnibiliumCMakeLists.txt
deleted file mode 100644
index 08a8599352..0000000000
--- a/third-party/cmake/UnibiliumCMakeLists.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-cmake_minimum_required(VERSION 2.8.12)
-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 "shell 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)
-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})
diff --git a/third-party/cmake/libtermkeyCMakeLists.txt b/third-party/cmake/libtermkeyCMakeLists.txt
deleted file mode 100644
index af54c1daec..0000000000
--- a/third-party/cmake/libtermkeyCMakeLists.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-cmake_minimum_required(VERSION 2.8.12)
-project(libtermkey)
-
-add_definitions(-D _CRT_SECURE_NO_WARNINGS)
-add_definitions(-DHAVE_UNIBILIUM)
-if(NOT MSVC)
- add_compile_options(-std=c99)
-endif()
-
-include_directories(${PROJECT_BINARY_DIR}/t)
-include_directories(SYSTEM ${UNIBILIUM_INCLUDE_DIRS})
-
-add_library(termkey termkey.c driver-csi.c driver-ti.c)
-set_target_properties(termkey PROPERTIES
- PUBLIC_HEADER ${PROJECT_SOURCE_DIR}/termkey.h)
-target_link_libraries(termkey ${UNIBILIUM_LIBRARIES})
-
-include(GNUInstallDirs)
-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()