aboutsummaryrefslogtreecommitdiff
path: root/cmake.deps/cmake
diff options
context:
space:
mode:
authorJosh Rahm <joshuarahm@gmail.com>2023-11-29 21:52:58 +0000
committerJosh Rahm <joshuarahm@gmail.com>2023-11-29 21:52:58 +0000
commit931bffbda3668ddc609fc1da8f9eb576b170aa52 (patch)
treed8c1843a95da5ea0bb4acc09f7e37843d9995c86 /cmake.deps/cmake
parent142d9041391780ac15b89886a54015fdc5c73995 (diff)
parent4a8bf24ac690004aedf5540fa440e788459e5e34 (diff)
downloadrneovim-userreg.tar.gz
rneovim-userreg.tar.bz2
rneovim-userreg.zip
Merge remote-tracking branch 'upstream/master' into userreguserreg
Diffstat (limited to 'cmake.deps/cmake')
-rw-r--r--cmake.deps/cmake/BuildGettext.cmake12
-rw-r--r--cmake.deps/cmake/BuildLibiconv.cmake9
-rw-r--r--cmake.deps/cmake/BuildLibtermkey.cmake17
-rw-r--r--cmake.deps/cmake/BuildLibuv.cmake16
-rw-r--r--cmake.deps/cmake/BuildLibvterm.cmake40
-rw-r--r--cmake.deps/cmake/BuildLpeg.cmake32
-rw-r--r--cmake.deps/cmake/BuildLua.cmake32
-rw-r--r--cmake.deps/cmake/BuildLuajit.cmake57
-rw-r--r--cmake.deps/cmake/BuildLuarocks.cmake180
-rw-r--r--cmake.deps/cmake/BuildLuv.cmake56
-rw-r--r--cmake.deps/cmake/BuildMsgpack.cmake13
-rw-r--r--cmake.deps/cmake/BuildTreesitter.cmake15
-rw-r--r--cmake.deps/cmake/BuildTreesitterParsers.cmake44
-rw-r--r--cmake.deps/cmake/BuildUnibilium.cmake9
-rw-r--r--cmake.deps/cmake/CopyFilesGlob.cmake2
-rw-r--r--cmake.deps/cmake/GetBinaryDeps.cmake44
-rw-r--r--cmake.deps/cmake/GettextCMakeLists.txt11
-rw-r--r--cmake.deps/cmake/LibiconvCMakeLists.txt9
-rw-r--r--cmake.deps/cmake/LibtermkeyCMakeLists.txt37
-rw-r--r--cmake.deps/cmake/Libvterm-tbl2inc_c.cmake163
-rw-r--r--cmake.deps/cmake/LibvtermCMakeLists.txt119
-rw-r--r--cmake.deps/cmake/LpegCMakeLists.txt13
-rw-r--r--cmake.deps/cmake/MarkdownParserCMakeLists.txt33
-rw-r--r--cmake.deps/cmake/RemoveFiles.cmake5
-rw-r--r--cmake.deps/cmake/TreesitterCMakeLists.txt8
-rw-r--r--cmake.deps/cmake/TreesitterParserCMakeLists.txt7
-rw-r--r--cmake.deps/cmake/libtermkeyCMakeLists.txt23
27 files changed, 351 insertions, 655 deletions
diff --git a/cmake.deps/cmake/BuildGettext.cmake b/cmake.deps/cmake/BuildGettext.cmake
index 1f9fd38702..33cfbe1a22 100644
--- a/cmake.deps/cmake/BuildGettext.cmake
+++ b/cmake.deps/cmake/BuildGettext.cmake
@@ -1,24 +1,20 @@
if(MSVC)
- if(USE_EXISTING_SRC_DIR)
- unset(GETTEXT_URL)
- endif()
ExternalProject_Add(gettext
URL ${GETTEXT_URL}
URL_HASH SHA256=${GETTEXT_SHA256}
- DOWNLOAD_NO_PROGRESS TRUE
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/gettext
PATCH_COMMAND ${CMAKE_COMMAND} -E copy
${CMAKE_CURRENT_SOURCE_DIR}/cmake/GettextCMakeLists.txt
${DEPS_BUILD_DIR}/src/gettext/CMakeLists.txt
CMAKE_ARGS ${DEPS_CMAKE_ARGS}
- -DLIBICONV_INCLUDE_DIRS=${DEPS_INSTALL_DIR}/include
- -DLIBICONV_LIBRARIES=${DEPS_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}libcharset${CMAKE_STATIC_LIBRARY_SUFFIX}$<SEMICOLON>${DEPS_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}libiconv${CMAKE_STATIC_LIBRARY_SUFFIX}
- CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS})
+ -D LIBICONV_INCLUDE_DIRS=${DEPS_INSTALL_DIR}/include
+ -D LIBICONV_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}
+ CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS}
+ ${EXTERNALPROJECT_OPTIONS})
else()
message(FATAL_ERROR "Trying to build gettext in an unsupported system ${CMAKE_SYSTEM_NAME}/${CMAKE_C_COMPILER_ID}")
endif()
-list(APPEND THIRD_PARTY_DEPS gettext)
if(USE_BUNDLED_LIBICONV)
add_dependencies(gettext libiconv)
endif()
diff --git a/cmake.deps/cmake/BuildLibiconv.cmake b/cmake.deps/cmake/BuildLibiconv.cmake
index 4b9c07ed6c..362e9b4609 100644
--- a/cmake.deps/cmake/BuildLibiconv.cmake
+++ b/cmake.deps/cmake/BuildLibiconv.cmake
@@ -1,19 +1,14 @@
if(MSVC)
- if(USE_EXISTING_SRC_DIR)
- unset(LIBICONV_URL)
- endif()
ExternalProject_Add(libiconv
URL ${LIBICONV_URL}
URL_HASH SHA256=${LIBICONV_SHA256}
- DOWNLOAD_NO_PROGRESS TRUE
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/libiconv
PATCH_COMMAND ${CMAKE_COMMAND} -E copy
${CMAKE_CURRENT_SOURCE_DIR}/cmake/LibiconvCMakeLists.txt
${DEPS_BUILD_DIR}/src/libiconv/CMakeLists.txt
CMAKE_ARGS ${DEPS_CMAKE_ARGS}
- CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS})
+ CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS}
+ ${EXTERNALPROJECT_OPTIONS})
else()
message(FATAL_ERROR "Trying to build libiconv in an unsupported system ${CMAKE_SYSTEM_NAME}/${CMAKE_C_COMPILER_ID}")
endif()
-
-list(APPEND THIRD_PARTY_DEPS libiconv)
diff --git a/cmake.deps/cmake/BuildLibtermkey.cmake b/cmake.deps/cmake/BuildLibtermkey.cmake
index 6457a864ba..185b276def 100644
--- a/cmake.deps/cmake/BuildLibtermkey.cmake
+++ b/cmake.deps/cmake/BuildLibtermkey.cmake
@@ -1,18 +1,13 @@
-if(USE_EXISTING_SRC_DIR)
- unset(LIBTERMKEY_URL)
-endif()
ExternalProject_Add(libtermkey
URL ${LIBTERMKEY_URL}
URL_HASH SHA256=${LIBTERMKEY_SHA256}
- DOWNLOAD_NO_PROGRESS TRUE
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/libtermkey
PATCH_COMMAND ${CMAKE_COMMAND} -E copy
- ${CMAKE_CURRENT_SOURCE_DIR}/cmake/libtermkeyCMakeLists.txt
+ ${CMAKE_CURRENT_SOURCE_DIR}/cmake/LibtermkeyCMakeLists.txt
${DEPS_BUILD_DIR}/src/libtermkey/CMakeLists.txt
CMAKE_ARGS ${DEPS_CMAKE_ARGS}
- -DCMAKE_SHARED_LIBRARY_LINK_C_FLAGS="" # Hack to avoid -rdynamic in Mingw
- -DUNIBILIUM_INCLUDE_DIRS=${DEPS_INSTALL_DIR}/include
- -DUNIBILIUM_LIBRARIES=${DEPS_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}unibilium${CMAKE_STATIC_LIBRARY_SUFFIX}
- CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS})
-
-list(APPEND THIRD_PARTY_DEPS libtermkey)
+ -D CMAKE_SHARED_LIBRARY_LINK_C_FLAGS="" # Hack to avoid -rdynamic in Mingw
+ -D UNIBILIUM_INCLUDE_DIRS=${DEPS_INSTALL_DIR}/include
+ -D UNIBILIUM_LIBRARIES=${DEPS_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}unibilium${CMAKE_STATIC_LIBRARY_SUFFIX}
+ CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS}
+ ${EXTERNALPROJECT_OPTIONS})
diff --git a/cmake.deps/cmake/BuildLibuv.cmake b/cmake.deps/cmake/BuildLibuv.cmake
index eb88458644..e7f7fdf253 100644
--- a/cmake.deps/cmake/BuildLibuv.cmake
+++ b/cmake.deps/cmake/BuildLibuv.cmake
@@ -1,15 +1,11 @@
-if(USE_EXISTING_SRC_DIR)
- unset(LIBUV_URL)
-endif()
ExternalProject_Add(libuv
URL ${LIBUV_URL}
URL_HASH SHA256=${LIBUV_SHA256}
- DOWNLOAD_NO_PROGRESS TRUE
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/libuv
CMAKE_ARGS ${DEPS_CMAKE_ARGS}
- -DCMAKE_INSTALL_LIBDIR=lib
- -DBUILD_TESTING=OFF
- -DLIBUV_BUILD_SHARED=OFF
- CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS})
-
-list(APPEND THIRD_PARTY_DEPS libuv)
+ -D CMAKE_INSTALL_LIBDIR=lib
+ -D BUILD_TESTING=OFF
+ -D LIBUV_BUILD_SHARED=OFF
+ -D UV_LINT_W4=OFF
+ CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS}
+ ${EXTERNALPROJECT_OPTIONS})
diff --git a/cmake.deps/cmake/BuildLibvterm.cmake b/cmake.deps/cmake/BuildLibvterm.cmake
index 1578d56fba..63f5872cb2 100644
--- a/cmake.deps/cmake/BuildLibvterm.cmake
+++ b/cmake.deps/cmake/BuildLibvterm.cmake
@@ -1,40 +1,10 @@
-if(WIN32)
- 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_GENERATOR=${CMAKE_GENERATOR}
- -DCMAKE_POSITION_INDEPENDENT_CODE=ON)
- set(LIBVTERM_BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $<CONFIG>)
- set(LIBVTERM_INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config $<CONFIG>)
-else()
- set(LIBVTERM_INSTALL_COMMAND ${MAKE_PRG} CC=${DEPS_C_COMPILER}
- PREFIX=${DEPS_INSTALL_DIR}
- CFLAGS=-fPIC
- LDFLAGS+=-static
- ${DEFAULT_MAKE_CFLAGS}
- install)
-endif()
-
-if(USE_EXISTING_SRC_DIR)
- unset(LIBVTERM_URL)
-endif()
ExternalProject_Add(libvterm
URL ${LIBVTERM_URL}
URL_HASH SHA256=${LIBVTERM_SHA256}
- DOWNLOAD_NO_PROGRESS TRUE
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/libvterm
- BUILD_IN_SOURCE 1
- CONFIGURE_COMMAND "${LIBVTERM_CONFIGURE_COMMAND}"
- BUILD_COMMAND "${LIBVTERM_BUILD_COMMAND}"
- INSTALL_COMMAND "${LIBVTERM_INSTALL_COMMAND}"
+ PATCH_COMMAND ${CMAKE_COMMAND} -E copy
+ ${CMAKE_CURRENT_SOURCE_DIR}/cmake/LibvtermCMakeLists.txt
+ ${DEPS_BUILD_DIR}/src/libvterm/CMakeLists.txt
CMAKE_ARGS ${DEPS_CMAKE_ARGS}
- CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS})
-
-list(APPEND THIRD_PARTY_DEPS libvterm)
+ CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS}
+ ${EXTERNALPROJECT_OPTIONS})
diff --git a/cmake.deps/cmake/BuildLpeg.cmake b/cmake.deps/cmake/BuildLpeg.cmake
new file mode 100644
index 0000000000..bba23fe42b
--- /dev/null
+++ b/cmake.deps/cmake/BuildLpeg.cmake
@@ -0,0 +1,32 @@
+set(LPEG_INCLUDE_FLAGS ${DEPS_INCLUDE_FLAGS})
+
+if(NOT USE_BUNDLED_LUAJIT AND NOT USE_BUNDLED_LUA)
+ find_package(Luajit)
+ if(LUAJIT_FOUND)
+ string(CONCAT LPEG_INCLUDE_FLAGS ${DEPS_INCLUDE_FLAGS} " -I${LUAJIT_INCLUDE_DIR}")
+ else()
+ find_package(Lua 5.1 EXACT)
+ if(LUA_FOUND)
+ string(CONCAT LPEG_INCLUDE_FLAGS ${DEPS_INCLUDE_FLAGS} " -I${LUA_INCLUDE_DIR}")
+ endif()
+ endif()
+endif()
+
+list(APPEND LPEG_CMAKE_ARGS -DCMAKE_C_FLAGS=${LPEG_INCLUDE_FLAGS})
+
+ExternalProject_Add(lpeg
+ URL ${LPEG_URL}
+ URL_HASH SHA256=${LPEG_SHA256}
+ DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/lpeg
+ PATCH_COMMAND ${CMAKE_COMMAND} -E copy
+ ${CMAKE_CURRENT_SOURCE_DIR}/cmake/LpegCMakeLists.txt
+ ${DEPS_BUILD_DIR}/src/lpeg/CMakeLists.txt
+ CMAKE_ARGS ${DEPS_CMAKE_ARGS} ${LPEG_CMAKE_ARGS}
+ CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS}
+ ${EXTERNALPROJECT_OPTIONS})
+
+if(USE_BUNDLED_LUAJIT)
+ add_dependencies(lpeg luajit)
+elseif(USE_BUNDLED_LUA)
+ add_dependencies(lpeg lua)
+endif()
diff --git a/cmake.deps/cmake/BuildLua.cmake b/cmake.deps/cmake/BuildLua.cmake
index b5ac8368a6..96b7a903f9 100644
--- a/cmake.deps/cmake/BuildLua.cmake
+++ b/cmake.deps/cmake/BuildLua.cmake
@@ -1,13 +1,13 @@
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
set(LUA_TARGET linux)
-elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
+elseif(APPLE)
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)
+ set(LUA_TARGET bsd)
elseif(CMAKE_SYSTEM_NAME MATCHES "^MINGW")
- set(CMAKE_LUA_TARGET mingw)
+ set(LUA_TARGET mingw)
else()
if(UNIX)
set(LUA_TARGET posix)
@@ -16,10 +16,10 @@ else()
endif()
endif()
-set(LUA_CFLAGS "-O0 -g3 -fPIC")
+set(LUA_CFLAGS "-O2 -g3 -fPIC")
set(LUA_LDFLAGS "")
-if(CLANG_ASAN_UBSAN)
+if(ENABLE_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")
@@ -40,30 +40,12 @@ set(LUA_CONFIGURE_COMMAND
-i ${DEPS_BUILD_DIR}/src/lua/src/luaconf.h)
set(LUA_INSTALL_TOP_ARG "INSTALL_TOP=${DEPS_INSTALL_DIR}")
-message(STATUS "Lua target is ${LUA_TARGET}")
-
-if(USE_EXISTING_SRC_DIR)
- unset(LUA_URL)
-endif()
ExternalProject_Add(lua
URL ${LUA_URL}
URL_HASH SHA256=${LUA_SHA256}
- DOWNLOAD_NO_PROGRESS TRUE
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/lua
CONFIGURE_COMMAND "${LUA_CONFIGURE_COMMAND}"
BUILD_IN_SOURCE 1
BUILD_COMMAND ${MAKE_PRG} ${LUA_INSTALL_TOP_ARG} ${LUA_TARGET}
- INSTALL_COMMAND ${MAKE_PRG} ${LUA_INSTALL_TOP_ARG} install)
-
-list(APPEND THIRD_PARTY_DEPS lua)
-
-set(BUSTED ${DEPS_INSTALL_DIR}/bin/busted)
-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)
+ INSTALL_COMMAND ${MAKE_PRG} ${LUA_INSTALL_TOP_ARG} install
+ ${EXTERNALPROJECT_OPTIONS})
diff --git a/cmake.deps/cmake/BuildLuajit.cmake b/cmake.deps/cmake/BuildLuajit.cmake
index 1476ac31f4..aa4c8e9293 100644
--- a/cmake.deps/cmake/BuildLuajit.cmake
+++ b/cmake.deps/cmake/BuildLuajit.cmake
@@ -15,30 +15,20 @@ function(BuildLuajit)
set(_luajit_TARGET "luajit")
endif()
- if(USE_EXISTING_SRC_DIR)
- unset(LUAJIT_URL)
- endif()
ExternalProject_Add(${_luajit_TARGET}
URL ${LUAJIT_URL}
URL_HASH SHA256=${LUAJIT_SHA256}
- DOWNLOAD_NO_PROGRESS TRUE
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/luajit
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()
+ DEPENDS "${_luajit_DEPENDS}"
+ ${EXTERNALPROJECT_OPTIONS})
endfunction()
check_c_compiler_flag(-fno-stack-check HAS_NO_STACK_CHECK)
-if(CMAKE_SYSTEM_NAME MATCHES "Darwin" AND HAS_NO_STACK_CHECK)
+if(APPLE AND HAS_NO_STACK_CHECK)
set(NO_STACK_CHECK "CFLAGS+=-fno-stack-check")
else()
set(NO_STACK_CHECK "")
@@ -48,7 +38,7 @@ if(CMAKE_SYSTEM_NAME MATCHES "OpenBSD")
else()
set(AMD64_ABI "")
endif()
-set(BUILDCMD_UNIX ${MAKE_PRG} CFLAGS=-fPIC
+set(BUILDCMD_UNIX ${MAKE_PRG} -j CFLAGS=-fPIC
CFLAGS+=-DLUA_USE_APICHECK
CFLAGS+=-funwind-tables
${NO_STACK_CHECK}
@@ -58,7 +48,7 @@ set(BUILDCMD_UNIX ${MAKE_PRG} CFLAGS=-fPIC
# Setting MACOSX_DEPLOYMENT_TARGET is mandatory for LuaJIT; use version set by
# cmake.deps/CMakeLists.txt (either environment variable or current system version).
-if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
+if(APPLE)
set(DEPLOYMENT_TARGET "MACOSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET}")
endif()
@@ -69,6 +59,11 @@ if((UNIX AND NOT APPLE) OR (APPLE AND NOT CMAKE_OSX_ARCHITECTURES))
elseif(CMAKE_OSX_ARCHITECTURES AND APPLE)
+ set(LUAJIT_C_COMPILER "${CMAKE_C_COMPILER}")
+ if(CMAKE_OSX_SYSROOT)
+ set(LUAJIT_C_COMPILER "${LUAJIT_C_COMPILER} -isysroot${CMAKE_OSX_SYSROOT}")
+ endif()
+
# 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.
@@ -116,37 +111,33 @@ elseif(MINGW)
# 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
+ INSTALL_COMMAND ${CMAKE_COMMAND} -E make_directory ${DEPS_BIN_DIR}
+ COMMAND ${CMAKE_COMMAND} -E copy ${DEPS_BUILD_DIR}/src/luajit/src/luajit.exe ${DEPS_BIN_DIR}
+ COMMAND ${CMAKE_COMMAND} -E copy ${DEPS_BUILD_DIR}/src/luajit/src/lua51.dll ${DEPS_BIN_DIR}
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${DEPS_LIB_DIR}
# 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 copy ${DEPS_BUILD_DIR}/src/luajit/src/lua51.dll ${DEPS_LIB_DIR}
+ COMMAND ${CMAKE_COMMAND} -E copy ${DEPS_BUILD_DIR}/src/luajit/src/libluajit.a ${DEPS_LIB_DIR}
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
+ COMMAND ${CMAKE_COMMAND} -E copy_directory ${DEPS_BUILD_DIR}/src/luajit/src/jit ${DEPS_INSTALL_DIR}/share/luajit-2.1/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
+ INSTALL_COMMAND ${CMAKE_COMMAND} -E make_directory ${DEPS_BIN_DIR}
+ COMMAND ${CMAKE_COMMAND} -E copy ${DEPS_BUILD_DIR}/src/luajit/src/luajit.exe ${DEPS_BIN_DIR}
+ COMMAND ${CMAKE_COMMAND} -E copy ${DEPS_BUILD_DIR}/src/luajit/src/lua51.dll ${DEPS_BIN_DIR}
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${DEPS_LIB_DIR}
# Luarocks searches for lua51.lib
- COMMAND ${CMAKE_COMMAND} -E copy ${DEPS_BUILD_DIR}/src/luajit/src/lua51.lib ${DEPS_INSTALL_DIR}/lib/lua51.lib
+ COMMAND ${CMAKE_COMMAND} -E copy ${DEPS_BUILD_DIR}/src/luajit/src/lua51.lib ${DEPS_LIB_DIR}/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 copy ${DEPS_BUILD_DIR}/src/luajit/src/lua51.lib ${DEPS_LIB_DIR}/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
+ COMMAND ${CMAKE_COMMAND} -E copy_directory ${DEPS_BUILD_DIR}/src/luajit/src/jit ${DEPS_INSTALL_DIR}/share/luajit-2.1/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/cmake.deps/cmake/BuildLuarocks.cmake b/cmake.deps/cmake/BuildLuarocks.cmake
deleted file mode 100644
index d0b4a8e7d1..0000000000
--- a/cmake.deps/cmake/BuildLuarocks.cmake
+++ /dev/null
@@ -1,180 +0,0 @@
-# Luarocks recipe. Luarocks is only required when building Neovim.
-# NOTE: LuaRocks rocks need to "DEPENDS" on the previous module, because
-# running luarocks in parallel will break, e.g. when some rocks have
-# the same dependency..
-
-option(USE_BUNDLED_BUSTED "Use the bundled version of busted to run tests." ON)
-
-# The luarocks binary location
-set(LUAROCKS_BINARY ${DEPS_BIN_DIR}/luarocks)
-
-# Arguments for calls to 'luarocks build'
-if(NOT MSVC)
- # In MSVC don't pass the compiler/linker to luarocks, the bundled
- # version already knows, and passing them here breaks the build
- set(LUAROCKS_BUILDARGS CC=${DEPS_C_COMPILER} LD=${DEPS_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=${DEPS_INSTALL_DIR}
- --with-lua-include=${DEPS_INSTALL_DIR}/include/luajit-2.1
- --with-lua-interpreter=luajit)
- elseif(USE_BUNDLED_LUA)
- list(APPEND LUAROCKS_OPTS
- --with-lua=${DEPS_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()
-
- set(LUAROCKS_CONFIGURE_COMMAND ${DEPS_BUILD_DIR}/src/luarocks/configure
- --prefix=${DEPS_INSTALL_DIR} --force-config ${LUAROCKS_OPTS})
- set(LUAROCKS_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
- set(LUAROCKS_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()
-
-if(USE_EXISTING_SRC_DIR)
- unset(LUAROCKS_URL)
-endif()
-ExternalProject_Add(luarocks
- URL ${LUAROCKS_URL}
- URL_HASH SHA256=${LUAROCKS_SHA256}
- DOWNLOAD_NO_PROGRESS TRUE
- DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/luarocks
- BUILD_IN_SOURCE 1
- CONFIGURE_COMMAND "${LUAROCKS_CONFIGURE_COMMAND}"
- BUILD_COMMAND ""
- INSTALL_COMMAND "${LUAROCKS_INSTALL_COMMAND}")
-
-list(APPEND THIRD_PARTY_DEPS luarocks)
-
-if(USE_BUNDLED_LUAJIT)
- add_dependencies(luarocks luajit)
-elseif(USE_BUNDLED_LUA)
- add_dependencies(luarocks lua)
-endif()
-set(ROCKS_DIR ${DEPS_LIB_DIR}/luarocks/rocks-${LUA_VERSION})
-
-# mpack
-add_custom_command(OUTPUT ${ROCKS_DIR}/mpack
- COMMAND ${LUAROCKS_BINARY} build mpack 1.0.8-0 ${LUAROCKS_BUILDARGS}
- DEPENDS luarocks)
-add_custom_target(mpack DEPENDS ${ROCKS_DIR}/mpack)
-list(APPEND THIRD_PARTY_DEPS mpack)
-
-# lpeg
-add_custom_command(OUTPUT ${ROCKS_DIR}/lpeg
- COMMAND ${LUAROCKS_BINARY} build lpeg 1.0.2-1 ${LUAROCKS_BUILDARGS}
- DEPENDS mpack)
-add_custom_target(lpeg DEPENDS ${ROCKS_DIR}/lpeg)
-list(APPEND THIRD_PARTY_DEPS lpeg)
-
-if((NOT USE_BUNDLED_LUAJIT) AND USE_BUNDLED_LUA)
- # luabitop
- add_custom_command(OUTPUT ${ROCKS_DIR}/luabitop
- COMMAND ${LUAROCKS_BINARY} build luabitop 1.0.2-3 ${LUAROCKS_BUILDARGS}
- DEPENDS lpeg)
- add_custom_target(luabitop DEPENDS ${ROCKS_DIR}/luabitop)
- list(APPEND THIRD_PARTY_DEPS luabitop)
-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} 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 "${DEPS_BIN_DIR}/busted.bat")
- set(LUACHECK_EXE "${DEPS_BIN_DIR}/luacheck.bat")
- else()
- set(BUSTED_EXE "${DEPS_BIN_DIR}/busted")
- set(LUACHECK_EXE "${DEPS_BIN_DIR}/luacheck")
- endif()
- add_custom_command(OUTPUT ${BUSTED_EXE}
- COMMAND ${LUAROCKS_BINARY} build busted 2.0.0 ${LUAROCKS_BUILDARGS}
- DEPENDS penlight)
- add_custom_target(busted DEPENDS ${BUSTED_EXE})
-
- # luacheck
- add_custom_command(OUTPUT ${LUACHECK_EXE}
- COMMAND ${LUAROCKS_BINARY} build luacheck 0.23.0-1 ${LUAROCKS_BUILDARGS}
- DEPENDS busted)
- add_custom_target(luacheck DEPENDS ${LUACHECK_EXE})
-
- # luv
- set(LUV_DEPS luacheck)
- if(USE_BUNDLED_LUV)
- set(NVIM_CLIENT_DEPS luacheck luv-static lua-compat-5.3)
- else()
- add_custom_command(OUTPUT ${ROCKS_DIR}/luv
- COMMAND ${LUAROCKS_BINARY} build luv ${LUV_VERSION} ${LUAROCKS_BUILDARGS}
- DEPENDS luacheck)
- add_custom_target(luv DEPENDS ${ROCKS_DIR}/luv)
- set(NVIM_CLIENT_DEPS luv)
- endif()
-
- # nvim-client: https://github.com/neovim/lua-client
- add_custom_command(OUTPUT ${ROCKS_DIR}/nvim-client
- COMMAND ${LUAROCKS_BINARY} build nvim-client 0.2.4-1 ${LUAROCKS_BUILDARGS}
- DEPENDS ${NVIM_CLIENT_DEPS})
- add_custom_target(nvim-client DEPENDS ${ROCKS_DIR}/nvim-client)
-
- list(APPEND THIRD_PARTY_DEPS busted luacheck nvim-client)
-endif()
diff --git a/cmake.deps/cmake/BuildLuv.cmake b/cmake.deps/cmake/BuildLuv.cmake
index 38c0503c5b..004fea7790 100644
--- a/cmake.deps/cmake/BuildLuv.cmake
+++ b/cmake.deps/cmake/BuildLuv.cmake
@@ -1,71 +1,57 @@
-set(LUV_INCLUDE_FLAGS
- "-I${DEPS_INSTALL_DIR}/include -I${DEPS_INSTALL_DIR}/include/luajit-2.1")
-
set(LUV_CMAKE_ARGS
- -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)
+ -D LUA_BUILD_TYPE=System
+ -D LUA_COMPAT53_DIR=${DEPS_BUILD_DIR}/src/lua-compat-5.3
+ -D WITH_SHARED_LIBUV=ON
+ -D BUILD_STATIC_LIBS=ON
+ -D BUILD_MODULE=OFF)
if(USE_BUNDLED_LUAJIT)
- list(APPEND LUV_CMAKE_ARGS -DWITH_LUA_ENGINE=LuaJit)
+ list(APPEND LUV_CMAKE_ARGS -D WITH_LUA_ENGINE=LuaJit)
elseif(USE_BUNDLED_LUA)
- list(APPEND LUV_CMAKE_ARGS -DWITH_LUA_ENGINE=Lua)
+ list(APPEND LUV_CMAKE_ARGS -D WITH_LUA_ENGINE=Lua)
else()
- find_package(LuaJit)
+ find_package(Luajit)
if(LUAJIT_FOUND)
- list(APPEND LUV_CMAKE_ARGS -DWITH_LUA_ENGINE=LuaJit)
+ list(APPEND LUV_CMAKE_ARGS -D WITH_LUA_ENGINE=LuaJit)
else()
- list(APPEND LUV_CMAKE_ARGS -DWITH_LUA_ENGINE=Lua)
+ list(APPEND LUV_CMAKE_ARGS -D WITH_LUA_ENGINE=Lua)
endif()
endif()
if(USE_BUNDLED_LIBUV)
- list(APPEND LUV_CMAKE_ARGS
- -DCMAKE_PREFIX_PATH=${DEPS_INSTALL_DIR}
- -DLIBUV_LIBRARIES=uv_a)
+ list(APPEND LUV_CMAKE_ARGS -D CMAKE_PREFIX_PATH=${DEPS_INSTALL_DIR})
endif()
-list(APPEND LUV_CMAKE_ARGS
- "-DCMAKE_C_FLAGS:STRING=${LUV_INCLUDE_FLAGS}")
+list(APPEND LUV_CMAKE_ARGS "-DCMAKE_C_FLAGS:STRING=${DEPS_INCLUDE_FLAGS} -w")
if(CMAKE_GENERATOR MATCHES "Unix Makefiles" AND
(CMAKE_SYSTEM_NAME MATCHES ".*BSD" OR CMAKE_SYSTEM_NAME MATCHES "DragonFly"))
- list(APPEND LUV_CMAKE_ARGS -DCMAKE_MAKE_PROGRAM=gmake)
+ list(APPEND LUV_CMAKE_ARGS -D CMAKE_MAKE_PROGRAM=gmake)
endif()
-if(USE_EXISTING_SRC_DIR)
- unset(LUA_COMPAT53_URL)
-endif()
ExternalProject_Add(lua-compat-5.3
URL ${LUA_COMPAT53_URL}
URL_HASH SHA256=${LUA_COMPAT53_SHA256}
- DOWNLOAD_NO_PROGRESS TRUE
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/lua-compat-5.3
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
- INSTALL_COMMAND "")
+ INSTALL_COMMAND ""
+ ${EXTERNALPROJECT_OPTIONS})
-if(USE_EXISTING_SRC_DIR)
- unset(LUV_URL)
-endif()
-ExternalProject_Add(luv-static
+ExternalProject_Add(luv
DEPENDS lua-compat-5.3
URL ${LUV_URL}
URL_HASH SHA256=${LUV_SHA256}
- DOWNLOAD_NO_PROGRESS TRUE
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/luv
SOURCE_DIR ${DEPS_BUILD_DIR}/src/luv
CMAKE_ARGS ${DEPS_CMAKE_ARGS} ${LUV_CMAKE_ARGS}
- CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS})
+ CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS}
+ ${EXTERNALPROJECT_OPTIONS})
-list(APPEND THIRD_PARTY_DEPS luv-static)
if(USE_BUNDLED_LUAJIT)
- add_dependencies(luv-static luajit)
+ add_dependencies(luv luajit)
elseif(USE_BUNDLED_LUA)
- add_dependencies(luv-static lua)
+ add_dependencies(luv lua)
endif()
if(USE_BUNDLED_LIBUV)
- add_dependencies(luv-static libuv)
+ add_dependencies(luv libuv)
endif()
diff --git a/cmake.deps/cmake/BuildMsgpack.cmake b/cmake.deps/cmake/BuildMsgpack.cmake
index 431420fb62..f60bdad5c9 100644
--- a/cmake.deps/cmake/BuildMsgpack.cmake
+++ b/cmake.deps/cmake/BuildMsgpack.cmake
@@ -1,14 +1,9 @@
-if(USE_EXISTING_SRC_DIR)
- unset(MSGPACK_URL)
-endif()
ExternalProject_Add(msgpack
URL ${MSGPACK_URL}
URL_HASH SHA256=${MSGPACK_SHA256}
- DOWNLOAD_NO_PROGRESS TRUE
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/msgpack
CMAKE_ARGS ${DEPS_CMAKE_ARGS}
- -DMSGPACK_BUILD_TESTS=OFF
- -DMSGPACK_BUILD_EXAMPLES=OFF
- CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS})
-
-list(APPEND THIRD_PARTY_DEPS msgpack)
+ -D MSGPACK_BUILD_TESTS=OFF
+ -D MSGPACK_BUILD_EXAMPLES=OFF
+ CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS}
+ ${EXTERNALPROJECT_OPTIONS})
diff --git a/cmake.deps/cmake/BuildTreesitter.cmake b/cmake.deps/cmake/BuildTreesitter.cmake
index d906e6aa59..c17773ae9d 100644
--- a/cmake.deps/cmake/BuildTreesitter.cmake
+++ b/cmake.deps/cmake/BuildTreesitter.cmake
@@ -1,16 +1,11 @@
-if(USE_EXISTING_SRC_DIR)
- unset(TREESITTER_URL)
-endif()
-ExternalProject_Add(tree-sitter
+ExternalProject_Add(treesitter
URL ${TREESITTER_URL}
URL_HASH SHA256=${TREESITTER_SHA256}
- DOWNLOAD_NO_PROGRESS TRUE
- DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/tree-sitter
+ DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/treesitter
INSTALL_DIR ${DEPS_INSTALL_DIR}
PATCH_COMMAND ${CMAKE_COMMAND} -E copy
${CMAKE_CURRENT_SOURCE_DIR}/cmake/TreesitterCMakeLists.txt
- ${DEPS_BUILD_DIR}/src/tree-sitter/CMakeLists.txt
+ ${DEPS_BUILD_DIR}/src/treesitter/CMakeLists.txt
CMAKE_ARGS ${DEPS_CMAKE_ARGS}
- CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS})
-
-list(APPEND THIRD_PARTY_DEPS tree-sitter)
+ CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS}
+ ${EXTERNALPROJECT_OPTIONS})
diff --git a/cmake.deps/cmake/BuildTreesitterParsers.cmake b/cmake.deps/cmake/BuildTreesitterParsers.cmake
index d62b19d97d..eddc896e69 100644
--- a/cmake.deps/cmake/BuildTreesitterParsers.cmake
+++ b/cmake.deps/cmake/BuildTreesitterParsers.cmake
@@ -1,22 +1,40 @@
-function(BuildTSParser LANG TS_URL TS_SHA256 TS_CMAKE_FILE)
- set(NAME treesitter-${LANG})
- if(USE_EXISTING_SRC_DIR)
- unset(TS_URL)
+# Helper function to download treesitter parsers
+#
+# Single value arguments:
+# LANG - Parser language
+# CMAKE_FILE - Cmake file to build the parser with. Defaults to
+# TreesitterParserCMakeLists.txt.
+function(BuildTSParser)
+ cmake_parse_arguments(TS
+ ""
+ "LANG;CMAKE_FILE"
+ ""
+ ${ARGN})
+
+ if(NOT TS_CMAKE_FILE)
+ set(TS_CMAKE_FILE TreesitterParserCMakeLists.txt)
endif()
+
+ set(NAME treesitter-${TS_LANG})
+ string(TOUPPER "TREESITTER_${TS_LANG}_URL" URL_VARNAME)
+ set(URL ${${URL_VARNAME}})
+ string(TOUPPER "TREESITTER_${TS_LANG}_SHA256" HASH_VARNAME)
+ set(HASH ${${HASH_VARNAME}})
+
ExternalProject_Add(${NAME}
- URL ${TS_URL}
- URL_HASH SHA256=${TS_SHA256}
- DOWNLOAD_NO_PROGRESS TRUE
+ URL ${URL}
+ URL_HASH SHA256=${HASH}
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/${NAME}
PATCH_COMMAND ${CMAKE_COMMAND} -E copy
${CMAKE_CURRENT_SOURCE_DIR}/cmake/${TS_CMAKE_FILE}
${DEPS_BUILD_DIR}/src/${NAME}/CMakeLists.txt
CMAKE_ARGS ${DEPS_CMAKE_ARGS}
- -DPARSERLANG=${LANG}
- CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS})
+ -D PARSERLANG=${TS_LANG}
+ CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS}
+ ${EXTERNALPROJECT_OPTIONS})
endfunction()
-BuildTSParser(c ${TREESITTER_C_URL} ${TREESITTER_C_SHA256} TreesitterParserCMakeLists.txt)
-BuildTSParser(lua ${TREESITTER_LUA_URL} ${TREESITTER_LUA_SHA256} TreesitterParserCMakeLists.txt)
-BuildTSParser(vim ${TREESITTER_VIM_URL} ${TREESITTER_VIM_SHA256} TreesitterParserCMakeLists.txt)
-BuildTSParser(help ${TREESITTER_HELP_URL} ${TREESITTER_HELP_SHA256} TreesitterParserCMakeLists.txt)
+foreach(lang c lua vim vimdoc query python bash)
+ BuildTSParser(LANG ${lang})
+endforeach()
+BuildTSParser(LANG markdown CMAKE_FILE MarkdownParserCMakeLists.txt)
diff --git a/cmake.deps/cmake/BuildUnibilium.cmake b/cmake.deps/cmake/BuildUnibilium.cmake
index 9a8caf89d1..9f1871aaf5 100644
--- a/cmake.deps/cmake/BuildUnibilium.cmake
+++ b/cmake.deps/cmake/BuildUnibilium.cmake
@@ -1,12 +1,7 @@
-if(USE_EXISTING_SRC_DIR)
- unset(UNIBILIUM_URL)
-endif()
ExternalProject_Add(unibilium
URL ${UNIBILIUM_URL}
URL_HASH SHA256=${UNIBILIUM_SHA256}
- DOWNLOAD_NO_PROGRESS TRUE
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/unibilium
CMAKE_ARGS ${DEPS_CMAKE_ARGS}
- CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS})
-
-list(APPEND THIRD_PARTY_DEPS unibilium)
+ CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS}
+ ${EXTERNALPROJECT_OPTIONS})
diff --git a/cmake.deps/cmake/CopyFilesGlob.cmake b/cmake.deps/cmake/CopyFilesGlob.cmake
index 8950ead1e5..7d0f4fc289 100644
--- a/cmake.deps/cmake/CopyFilesGlob.cmake
+++ b/cmake.deps/cmake/CopyFilesGlob.cmake
@@ -14,7 +14,7 @@ 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)
+ if(rv)
message(FATAL_ERROR "Error copying ${file}")
endif()
endforeach()
diff --git a/cmake.deps/cmake/GetBinaryDeps.cmake b/cmake.deps/cmake/GetBinaryDeps.cmake
index da4376998b..2f1e237588 100644
--- a/cmake.deps/cmake/GetBinaryDeps.cmake
+++ b/cmake.deps/cmake/GetBinaryDeps.cmake
@@ -5,35 +5,49 @@
# 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()
- if(USE_EXISTING_SRC_DIR)
- unset(URL)
- endif()
ExternalProject_Add(${_gettool_TARGET}
URL ${URL}
URL_HASH SHA256=${HASH}
- DOWNLOAD_NO_PROGRESS TRUE
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}
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})
+ INSTALL_COMMAND ${CMAKE_COMMAND} -E make_directory ${DEPS_BIN_DIR}
+ COMMAND "${_gettool_INSTALL_COMMAND}"
+ ${EXTERNALPROJECT_OPTIONS})
+endfunction()
+
+# Download executable and move it to DEPS_BIN_DIR
+function(GetExecutable)
+ cmake_parse_arguments(ARG
+ ""
+ "TARGET"
+ ""
+ ${ARGN})
+
+ string(TOUPPER "${ARG_TARGET}_URL" URL_VARNAME)
+ string(TOUPPER "${ARG_TARGET}_SHA256" HASH_VARNAME)
+ set(URL ${${URL_VARNAME}})
+ set(HASH ${${HASH_VARNAME}})
+
+ ExternalProject_Add(${ARG_TARGET}
+ URL ${URL}
+ URL_HASH SHA256=${HASH}
+ DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}
+ DOWNLOAD_NO_EXTRACT TRUE
+ CONFIGURE_COMMAND ""
+ BUILD_COMMAND ""
+ INSTALL_COMMAND ${CMAKE_COMMAND} -E make_directory ${DEPS_BIN_DIR}
+ COMMAND ${CMAKE_COMMAND} -E copy <DOWNLOADED_FILE> ${DEPS_BIN_DIR}
+ ${EXTERNALPROJECT_OPTIONS})
endfunction()
diff --git a/cmake.deps/cmake/GettextCMakeLists.txt b/cmake.deps/cmake/GettextCMakeLists.txt
index 26f060ec08..e40a73d0c2 100644
--- a/cmake.deps/cmake/GettextCMakeLists.txt
+++ b/cmake.deps/cmake/GettextCMakeLists.txt
@@ -1,6 +1,14 @@
cmake_minimum_required(VERSION 3.10)
+
+# Can be removed once minimum version is at least 3.15
+if(POLICY CMP0092)
+ cmake_policy(SET CMP0092 NEW)
+endif()
project(gettext C)
+add_compile_options(-w)
+set(CMAKE_STATIC_LINKER_FLAGS "${CMAKE_STATIC_LINKER_FLAGS} /ignore:4006")
+
# Adds PREFIX to each item in LIST
macro(PREFIX_LIST_ITEMS LIST PREFIX)
string(REPLACE ";" ";${PREFIX}" ${LIST} ";${${LIST}}")
@@ -73,8 +81,7 @@ set_property(TARGET libintl APPEND PROPERTY COMPILE_DEFINITIONS
NO_XMALLOC
set_relocation_prefix=libintl_set_relocation_prefix
relocate=libintl_relocate
- HAVE_CONFIG_H
- _CRT_SECURE_NO_WARNINGS)
+ HAVE_CONFIG_H)
file(READ gettext-tools/config.h.in CONFIG_CONTENT)
diff --git a/cmake.deps/cmake/LibiconvCMakeLists.txt b/cmake.deps/cmake/LibiconvCMakeLists.txt
index f6a23db864..ec80c93e71 100644
--- a/cmake.deps/cmake/LibiconvCMakeLists.txt
+++ b/cmake.deps/cmake/LibiconvCMakeLists.txt
@@ -1,6 +1,13 @@
cmake_minimum_required(VERSION 3.10)
+
+# Can be removed once minimum version is at least 3.15
+if(POLICY CMP0092)
+ cmake_policy(SET CMP0092 NEW)
+endif()
project(libiconv C)
+add_compile_options(-w)
+
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/srclib
@@ -31,7 +38,7 @@ 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_definitions(-DLIBDIR)
add_library(libcharset libcharset/lib/localcharset.c)
diff --git a/cmake.deps/cmake/LibtermkeyCMakeLists.txt b/cmake.deps/cmake/LibtermkeyCMakeLists.txt
new file mode 100644
index 0000000000..24d67a7ba5
--- /dev/null
+++ b/cmake.deps/cmake/LibtermkeyCMakeLists.txt
@@ -0,0 +1,37 @@
+cmake_minimum_required(VERSION 3.10)
+# Can be removed once minimum version is at least 3.15
+if(POLICY CMP0092)
+ cmake_policy(SET CMP0092 NEW)
+endif()
+project(libtermkey C)
+
+add_compile_options(-w)
+
+if(EXISTS ${PROJECT_SOURCE_DIR}/termkey.h.in)
+ file(STRINGS Makefile TERMKEY_VERSION_MAJOR REGEX "VERSION_MAJOR")
+ string(REGEX MATCH "[0-9]+" TERMKEY_VERSION_MAJOR ${TERMKEY_VERSION_MAJOR})
+
+ file(STRINGS Makefile TERMKEY_VERSION_MINOR REGEX "VERSION_MINOR")
+ string(REGEX MATCH "[0-9]+" TERMKEY_VERSION_MINOR ${TERMKEY_VERSION_MINOR})
+
+ file(READ termkey.h.in TERMKEY_TEXT)
+ string(REPLACE "@@VERSION_MAJOR@@" "${TERMKEY_VERSION_MAJOR}" TERMKEY_TEXT "${TERMKEY_TEXT}")
+ string(REPLACE "@@VERSION_MINOR@@" "${TERMKEY_VERSION_MINOR}" TERMKEY_TEXT "${TERMKEY_TEXT}")
+ file(WRITE termkey.h "${TERMKEY_TEXT}")
+endif()
+
+add_library(termkey termkey.c driver-csi.c driver-ti.c)
+
+target_compile_definitions(termkey PRIVATE HAVE_UNIBILIUM)
+target_include_directories(termkey PRIVATE SYSTEM ${UNIBILIUM_INCLUDE_DIRS})
+
+set_target_properties(termkey PROPERTIES
+ PUBLIC_HEADER ${PROJECT_SOURCE_DIR}/termkey.h)
+target_link_libraries(termkey PRIVATE ${UNIBILIUM_LIBRARIES})
+
+include(GNUInstallDirs)
+install(TARGETS termkey
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+
+# vim: set ft=cmake:
diff --git a/cmake.deps/cmake/Libvterm-tbl2inc_c.cmake b/cmake.deps/cmake/Libvterm-tbl2inc_c.cmake
deleted file mode 100644
index 32d973680f..0000000000
--- a/cmake.deps/cmake/Libvterm-tbl2inc_c.cmake
+++ /dev/null
@@ -1,163 +0,0 @@
-cmake_minimum_required(VERSION 3.10)
-
-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/cmake.deps/cmake/LibvtermCMakeLists.txt b/cmake.deps/cmake/LibvtermCMakeLists.txt
index 079ad28ba0..519926e542 100644
--- a/cmake.deps/cmake/LibvtermCMakeLists.txt
+++ b/cmake.deps/cmake/LibvtermCMakeLists.txt
@@ -1,44 +1,72 @@
cmake_minimum_required(VERSION 3.10)
-project(libvterm LANGUAGES C)
+# Can be removed once minimum version is at least 3.15
+if(POLICY CMP0092)
+ cmake_policy(SET CMP0092 NEW)
+endif()
+project(libvterm C)
+
+add_compile_options(-w)
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()
+set(DECDRAWING [[
+ static const struct StaticTableEncoding encoding_DECdrawing = {
+ { .decode = &decode_table },
+ {
+ [0x60] = 0x25C6,
+ [0x61] = 0x2592,
+ [0x62] = 0x2409,
+ [0x63] = 0x240C,
+ [0x64] = 0x240D,
+ [0x65] = 0x240A,
+ [0x66] = 0x00B0,
+ [0x67] = 0x00B1,
+ [0x68] = 0x2424,
+ [0x69] = 0x240B,
+ [0x6a] = 0x2518,
+ [0x6b] = 0x2510,
+ [0x6c] = 0x250C,
+ [0x6d] = 0x2514,
+ [0x6e] = 0x253C,
+ [0x6f] = 0x23BA,
+ [0x70] = 0x23BB,
+ [0x71] = 0x2500,
+ [0x72] = 0x23BC,
+ [0x73] = 0x23BD,
+ [0x74] = 0x251C,
+ [0x75] = 0x2524,
+ [0x76] = 0x2534,
+ [0x77] = 0x252C,
+ [0x78] = 0x2502,
+ [0x79] = 0x2A7D,
+ [0x7a] = 0x2A7E,
+ [0x7b] = 0x03C0,
+ [0x7c] = 0x2260,
+ [0x7d] = 0x00A3,
+ [0x7e] = 0x00B7,
+ }
+ };
+]]
+)
-# 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()
+set(UK [[
+ static const struct StaticTableEncoding encoding_uk = {
+ { .decode = &decode_table },
+ {
+ [0x23] = 0x00a3,
+ }
+ };
+]]
+)
+
+file(WRITE src/encoding/DECdrawing.inc "${DECDRAWING}")
+file(WRITE src/encoding/uk.inc "${UK}")
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})
+add_library(vterm ${VTERM_SOURCES})
install(TARGETS vterm ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
install(FILES include/vterm.h include/vterm_keycodes.h
@@ -54,33 +82,4 @@ if(NOT WIN32)
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()
-
# vim: set ft=cmake:
diff --git a/cmake.deps/cmake/LpegCMakeLists.txt b/cmake.deps/cmake/LpegCMakeLists.txt
new file mode 100644
index 0000000000..a3b3327cf7
--- /dev/null
+++ b/cmake.deps/cmake/LpegCMakeLists.txt
@@ -0,0 +1,13 @@
+cmake_minimum_required(VERSION 3.10)
+project (lpeg C)
+
+include(GNUInstallDirs)
+
+file(GLOB LPEG_SOURCES ${CMAKE_SOURCE_DIR}/*.c)
+add_library(lpeg ${LPEG_SOURCES})
+
+target_compile_options(lpeg PRIVATE -w)
+
+install(TARGETS lpeg ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
+
+# vim: set ft=cmake:
diff --git a/cmake.deps/cmake/MarkdownParserCMakeLists.txt b/cmake.deps/cmake/MarkdownParserCMakeLists.txt
new file mode 100644
index 0000000000..a5917334c9
--- /dev/null
+++ b/cmake.deps/cmake/MarkdownParserCMakeLists.txt
@@ -0,0 +1,33 @@
+cmake_minimum_required(VERSION 3.10)
+# Can be removed once minimum version is at least 3.15
+if(POLICY CMP0092)
+ cmake_policy(SET CMP0092 NEW)
+endif()
+project(${PARSERLANG} C)
+
+add_compile_options(-w)
+set(CMAKE_C_STANDARD 99)
+
+add_library(markdown MODULE
+tree-sitter-markdown/src/parser.c
+tree-sitter-markdown/src/scanner.c)
+target_include_directories(markdown
+ PRIVATE
+ tree-sitter-markdown/src)
+
+add_library(markdown_inline MODULE
+tree-sitter-markdown-inline/src/parser.c
+tree-sitter-markdown-inline/src/scanner.c)
+target_include_directories(markdown_inline
+ PRIVATE
+ tree-sitter-markdown-inline/src)
+
+set_target_properties(
+ markdown markdown_inline
+ PROPERTIES
+ PREFIX ""
+)
+
+install(TARGETS markdown markdown_inline LIBRARY DESTINATION lib/nvim/parser)
+
+# vim: set ft=cmake:
diff --git a/cmake.deps/cmake/RemoveFiles.cmake b/cmake.deps/cmake/RemoveFiles.cmake
deleted file mode 100644
index 88e2bc70a6..0000000000
--- a/cmake.deps/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/cmake.deps/cmake/TreesitterCMakeLists.txt b/cmake.deps/cmake/TreesitterCMakeLists.txt
index 49fb19c96a..3d80ffc331 100644
--- a/cmake.deps/cmake/TreesitterCMakeLists.txt
+++ b/cmake.deps/cmake/TreesitterCMakeLists.txt
@@ -1,5 +1,11 @@
cmake_minimum_required(VERSION 3.10)
-project(tree-sitter LANGUAGES C)
+# Can be removed once minimum version is at least 3.15
+if(POLICY CMP0092)
+ cmake_policy(SET CMP0092 NEW)
+endif()
+project(treesitter C)
+
+add_compile_options(-w)
add_library(tree-sitter lib/src/lib.c)
target_include_directories(tree-sitter
diff --git a/cmake.deps/cmake/TreesitterParserCMakeLists.txt b/cmake.deps/cmake/TreesitterParserCMakeLists.txt
index 9bdf500aa7..bdb3f05c11 100644
--- a/cmake.deps/cmake/TreesitterParserCMakeLists.txt
+++ b/cmake.deps/cmake/TreesitterParserCMakeLists.txt
@@ -1,7 +1,12 @@
cmake_minimum_required(VERSION 3.10)
+# Can be removed once minimum version is at least 3.15
+if(POLICY CMP0092)
+ cmake_policy(SET CMP0092 NEW)
+endif()
project(parser C)
-set(CMAKE_C_STANDARD 99)
+add_compile_options(-w)
+
file(GLOB source_files src/*.c)
add_library(parser
diff --git a/cmake.deps/cmake/libtermkeyCMakeLists.txt b/cmake.deps/cmake/libtermkeyCMakeLists.txt
deleted file mode 100644
index 26c9d7730b..0000000000
--- a/cmake.deps/cmake/libtermkeyCMakeLists.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-cmake_minimum_required(VERSION 3.10)
-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})
-
-# vim: set ft=cmake: