From 905dd49fece0903dba4e5a618f503d0237415b14 Mon Sep 17 00:00:00 2001 From: Thomas Vigouroux Date: Mon, 16 Aug 2021 15:37:01 +0200 Subject: feat(treesitter): bundle Lua parser and queries parser from https://github.com/MunifTanjim/tree-sitter-lua queries from nvim-treesitter --- cmake.deps/cmake/BuildTreesitterParsers.cmake | 56 +++++++++++++-------------- 1 file changed, 28 insertions(+), 28 deletions(-) (limited to 'cmake.deps/cmake/BuildTreesitterParsers.cmake') diff --git a/cmake.deps/cmake/BuildTreesitterParsers.cmake b/cmake.deps/cmake/BuildTreesitterParsers.cmake index 1ff86e89b9..c8f5815cd2 100644 --- a/cmake.deps/cmake/BuildTreesitterParsers.cmake +++ b/cmake.deps/cmake/BuildTreesitterParsers.cmake @@ -1,29 +1,29 @@ -ExternalProject_Add(treesitter-c -PREFIX ${DEPS_BUILD_DIR} -URL ${TREESITTER_C_URL} -DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/treesitter-c -DOWNLOAD_COMMAND ${CMAKE_COMMAND} - -DPREFIX=${DEPS_BUILD_DIR} - -DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/treesitter-c - -DURL=${TREESITTER_C_URL} - -DEXPECTED_SHA256=${TREESITTER_C_SHA256} - -DTARGET=treesitter-c - -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR} - -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake -PATCH_COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_CURRENT_SOURCE_DIR}/cmake/TreesitterParserCMakeLists.txt - ${DEPS_BUILD_DIR}/src/treesitter-c/CMakeLists.txt -CMAKE_ARGS - -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} - -DCMAKE_GENERATOR=${CMAKE_GENERATOR} - -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} - ${BUILD_TYPE_STRING} - -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} - -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES_ALT_SEP} - # Pass toolchain - -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} - -DPARSERLANG=c +function(BuildTSParser LANG TS_URL TS_SHA256 TS_CMAKE_FILE) + set(NAME treesitter-${LANG}) + ExternalProject_Add(${NAME} + PREFIX ${DEPS_BUILD_DIR} + URL ${TREESITTER_C_URL} + DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/${NAME} + DOWNLOAD_COMMAND ${CMAKE_COMMAND} + -DPREFIX=${DEPS_BUILD_DIR} + -DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/${NAME} + -DURL=${TS_URL} + -DEXPECTED_SHA256=${TS_SHA256} + -DTARGET=${NAME} + -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR} + -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake + PATCH_COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_CURRENT_SOURCE_DIR}/cmake/${TS_CMAKE_FILE} + ${DEPS_BUILD_DIR}/src/${NAME}/CMakeLists.txt + CMAKE_ARGS + -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} + -DCMAKE_GENERATOR=${CMAKE_GENERATOR} + ${BUILD_TYPE_STRING} + -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} + # Pass toolchain + -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} + -DPARSERLANG=${LANG}) +endfunction() -BUILD_COMMAND ${CMAKE_COMMAND} --build . --config ${CMAKE_BUILD_TYPE} -INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config ${CMAKE_BUILD_TYPE} -LIST_SEPARATOR |) +BuildTSParser(c ${TREESITTER_C_URL} ${TREESITTER_C_SHA256} TreesitterParserCMakeLists.txt) +BuildTSParser(lua ${TREESITTER_LUA_URL} ${TREESITTER_LUA_SHA256} TreesitterParserCMakeLists.txt) -- cgit From e85b8aa7681a1870244795cccfbb74b589996eff Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Sun, 4 Sep 2022 16:27:57 +0200 Subject: feat(treesitter): add viml parser and queries --- cmake.deps/cmake/BuildTreesitterParsers.cmake | 1 + 1 file changed, 1 insertion(+) (limited to 'cmake.deps/cmake/BuildTreesitterParsers.cmake') diff --git a/cmake.deps/cmake/BuildTreesitterParsers.cmake b/cmake.deps/cmake/BuildTreesitterParsers.cmake index c8f5815cd2..6267a1387c 100644 --- a/cmake.deps/cmake/BuildTreesitterParsers.cmake +++ b/cmake.deps/cmake/BuildTreesitterParsers.cmake @@ -27,3 +27,4 @@ endfunction() BuildTSParser(c ${TREESITTER_C_URL} ${TREESITTER_C_SHA256} TreesitterParserCMakeLists.txt) BuildTSParser(lua ${TREESITTER_LUA_URL} ${TREESITTER_LUA_SHA256} TreesitterParserCMakeLists.txt) +BuildTSParser(vim ${TREESITTER_VIM_URL} ${TREESITTER_VIM_SHA256} TreesitterParserCMakeLists.txt) -- cgit From 97f38f0a9bbae4969f672746a62caa6cba136b45 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Sun, 4 Sep 2022 17:58:33 +0200 Subject: fix(treesitter): do not link @error by default The @error capture is used for tree-sitter's ERROR node, which indicates a parsing error -- which can be quite frequent (and jarring) while typing. Users can still manually `hi link @error Error` in their config. --- cmake.deps/cmake/BuildTreesitterParsers.cmake | 5 ----- 1 file changed, 5 deletions(-) (limited to 'cmake.deps/cmake/BuildTreesitterParsers.cmake') diff --git a/cmake.deps/cmake/BuildTreesitterParsers.cmake b/cmake.deps/cmake/BuildTreesitterParsers.cmake index 6267a1387c..dd3f4eb308 100644 --- a/cmake.deps/cmake/BuildTreesitterParsers.cmake +++ b/cmake.deps/cmake/BuildTreesitterParsers.cmake @@ -16,12 +16,7 @@ function(BuildTSParser LANG TS_URL TS_SHA256 TS_CMAKE_FILE) ${CMAKE_CURRENT_SOURCE_DIR}/cmake/${TS_CMAKE_FILE} ${DEPS_BUILD_DIR}/src/${NAME}/CMakeLists.txt CMAKE_ARGS - -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} - -DCMAKE_GENERATOR=${CMAKE_GENERATOR} - ${BUILD_TYPE_STRING} -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} - # Pass toolchain - -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} -DPARSERLANG=${LANG}) endfunction() -- cgit From bde6176c9107e32466f28dc96e9a71fd4d7bb644 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Thu, 8 Sep 2022 14:26:18 -0700 Subject: feat(treesitter): bundle :help parser and queries parser from https://github.com/vigoux/tree-sitter-vimdoc queries from nvim-treesitter --- cmake.deps/cmake/BuildTreesitterParsers.cmake | 1 + 1 file changed, 1 insertion(+) (limited to 'cmake.deps/cmake/BuildTreesitterParsers.cmake') diff --git a/cmake.deps/cmake/BuildTreesitterParsers.cmake b/cmake.deps/cmake/BuildTreesitterParsers.cmake index dd3f4eb308..25d2fd21a3 100644 --- a/cmake.deps/cmake/BuildTreesitterParsers.cmake +++ b/cmake.deps/cmake/BuildTreesitterParsers.cmake @@ -23,3 +23,4 @@ endfunction() BuildTSParser(c ${TREESITTER_C_URL} ${TREESITTER_C_SHA256} TreesitterParserCMakeLists.txt) BuildTSParser(lua ${TREESITTER_LUA_URL} ${TREESITTER_LUA_SHA256} TreesitterParserCMakeLists.txt) BuildTSParser(vim ${TREESITTER_VIM_URL} ${TREESITTER_VIM_SHA256} TreesitterParserCMakeLists.txt) +BuildTSParser(help ${TREESITTER_HELP_URL} ${TREESITTER_HELP_SHA256} TreesitterParserCMakeLists.txt) -- cgit From eb4844b5ed9bcf8c434a93b9f9def4fe81557f37 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Wed, 28 Sep 2022 11:06:11 +0200 Subject: build(macos): restore and test universal build (#20383) Build tree-sitter parsers for arm64 as well as x86 Check that all created binaries contain both architectures --- cmake.deps/cmake/BuildTreesitterParsers.cmake | 2 ++ 1 file changed, 2 insertions(+) (limited to 'cmake.deps/cmake/BuildTreesitterParsers.cmake') diff --git a/cmake.deps/cmake/BuildTreesitterParsers.cmake b/cmake.deps/cmake/BuildTreesitterParsers.cmake index 25d2fd21a3..e08792f62a 100644 --- a/cmake.deps/cmake/BuildTreesitterParsers.cmake +++ b/cmake.deps/cmake/BuildTreesitterParsers.cmake @@ -4,6 +4,8 @@ function(BuildTSParser LANG TS_URL TS_SHA256 TS_CMAKE_FILE) PREFIX ${DEPS_BUILD_DIR} URL ${TREESITTER_C_URL} DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/${NAME} + CMAKE_CACHE_ARGS + -DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES} DOWNLOAD_COMMAND ${CMAKE_COMMAND} -DPREFIX=${DEPS_BUILD_DIR} -DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/${NAME} -- cgit From 59d5f692f8f563bf6f7c232f971ad764316e4466 Mon Sep 17 00:00:00 2001 From: dundargoc Date: Thu, 29 Sep 2022 21:46:14 +0200 Subject: build: rely on builtin cmake downloading rather than custom script DownloadAndExtractFile.cmake was initially introduced as a workaround to avoid the massive amounts of logs generated by the download progress. This is not a problem anymore as ExternalProject_Add has had the DOWNLOAD_NO_PROGRESS option since cmake version 3.1. --- cmake.deps/cmake/BuildTreesitterParsers.cmake | 28 +++++++++++---------------- 1 file changed, 11 insertions(+), 17 deletions(-) (limited to 'cmake.deps/cmake/BuildTreesitterParsers.cmake') diff --git a/cmake.deps/cmake/BuildTreesitterParsers.cmake b/cmake.deps/cmake/BuildTreesitterParsers.cmake index e08792f62a..ad45491861 100644 --- a/cmake.deps/cmake/BuildTreesitterParsers.cmake +++ b/cmake.deps/cmake/BuildTreesitterParsers.cmake @@ -1,25 +1,19 @@ function(BuildTSParser LANG TS_URL TS_SHA256 TS_CMAKE_FILE) set(NAME treesitter-${LANG}) ExternalProject_Add(${NAME} - PREFIX ${DEPS_BUILD_DIR} - URL ${TREESITTER_C_URL} - DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/${NAME} - CMAKE_CACHE_ARGS - -DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES} - DOWNLOAD_COMMAND ${CMAKE_COMMAND} - -DPREFIX=${DEPS_BUILD_DIR} - -DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/${NAME} - -DURL=${TS_URL} - -DEXPECTED_SHA256=${TS_SHA256} - -DTARGET=${NAME} - -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR} - -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake - PATCH_COMMAND ${CMAKE_COMMAND} -E copy + PREFIX ${DEPS_BUILD_DIR} + URL ${TS_URL} + URL_HASH SHA256=${TS_SHA256} + DOWNLOAD_NO_PROGRESS TRUE + DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/${NAME} + CMAKE_CACHE_ARGS + -DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES} + PATCH_COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/cmake/${TS_CMAKE_FILE} ${DEPS_BUILD_DIR}/src/${NAME}/CMakeLists.txt - CMAKE_ARGS - -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} - -DPARSERLANG=${LANG}) + CMAKE_ARGS + -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} + -DPARSERLANG=${LANG}) endfunction() BuildTSParser(c ${TREESITTER_C_URL} ${TREESITTER_C_SHA256} TreesitterParserCMakeLists.txt) -- cgit From fbc66d798ce834c4ba05360c3c07ce7af40d6fc9 Mon Sep 17 00:00:00 2001 From: dundargoc Date: Sat, 1 Oct 2022 14:54:58 +0200 Subject: build: define EP_PREFIX property This is just to avoid the boilerplate of definining PREFIX for each dependency. --- cmake.deps/cmake/BuildTreesitterParsers.cmake | 1 - 1 file changed, 1 deletion(-) (limited to 'cmake.deps/cmake/BuildTreesitterParsers.cmake') diff --git a/cmake.deps/cmake/BuildTreesitterParsers.cmake b/cmake.deps/cmake/BuildTreesitterParsers.cmake index ad45491861..9e3c37337e 100644 --- a/cmake.deps/cmake/BuildTreesitterParsers.cmake +++ b/cmake.deps/cmake/BuildTreesitterParsers.cmake @@ -1,7 +1,6 @@ function(BuildTSParser LANG TS_URL TS_SHA256 TS_CMAKE_FILE) set(NAME treesitter-${LANG}) ExternalProject_Add(${NAME} - PREFIX ${DEPS_BUILD_DIR} URL ${TS_URL} URL_HASH SHA256=${TS_SHA256} DOWNLOAD_NO_PROGRESS TRUE -- cgit From 61da959bb401b83454be0748b7a8b482f1be76e5 Mon Sep 17 00:00:00 2001 From: James McCoy Date: Thu, 6 Oct 2022 09:14:38 -0400 Subject: build(deps): restore support for USE_EXISTING_SRC_DIR (#20491) 59d5f692f removed cmake.deps/cmake/DownloadAndExtractFile.cmake and support for USE_EXISTING_SRC_DIR. The Ubuntu nightly PPA still relies on USE_EXISTING_SRC_DIR functionality since it can't access the network during the build. Supplying an empty value for ExternalProject_Add()'s URL value appears to provide the needed mechanism to avoid re-downloading when the sources are already present. This is undocumented behavior, though, so it may break in the future. Now, if USE_EXISTING_SRC_DIR is set, the ExternalProject's URL variable is unset, preventing the download and erroring out if the source doesn't actually exist. --- cmake.deps/cmake/BuildTreesitterParsers.cmake | 3 +++ 1 file changed, 3 insertions(+) (limited to 'cmake.deps/cmake/BuildTreesitterParsers.cmake') diff --git a/cmake.deps/cmake/BuildTreesitterParsers.cmake b/cmake.deps/cmake/BuildTreesitterParsers.cmake index 9e3c37337e..ead039aae6 100644 --- a/cmake.deps/cmake/BuildTreesitterParsers.cmake +++ b/cmake.deps/cmake/BuildTreesitterParsers.cmake @@ -1,5 +1,8 @@ function(BuildTSParser LANG TS_URL TS_SHA256 TS_CMAKE_FILE) set(NAME treesitter-${LANG}) + if(USE_EXISTING_SRC_DIR) + unset(TS_URL) + endif() ExternalProject_Add(${NAME} URL ${TS_URL} URL_HASH SHA256=${TS_SHA256} -- cgit