diff options
author | Josh Rahm <joshuarahm@gmail.com> | 2023-11-29 22:40:31 +0000 |
---|---|---|
committer | Josh Rahm <joshuarahm@gmail.com> | 2023-11-29 22:40:31 +0000 |
commit | 339e2d15cc26fe86988ea06468d912a46c8d6f29 (patch) | |
tree | a6167fc8fcfc6ae2dc102f57b2473858eac34063 /cmake.deps/cmake/BuildTreesitterParsers.cmake | |
parent | 067dc73729267c0262438a6fdd66e586f8496946 (diff) | |
parent | 4a8bf24ac690004aedf5540fa440e788459e5e34 (diff) | |
download | rneovim-339e2d15cc26fe86988ea06468d912a46c8d6f29.tar.gz rneovim-339e2d15cc26fe86988ea06468d912a46c8d6f29.tar.bz2 rneovim-339e2d15cc26fe86988ea06468d912a46c8d6f29.zip |
Merge remote-tracking branch 'upstream/master' into fix_repeatcmdline
Diffstat (limited to 'cmake.deps/cmake/BuildTreesitterParsers.cmake')
-rw-r--r-- | cmake.deps/cmake/BuildTreesitterParsers.cmake | 44 |
1 files changed, 31 insertions, 13 deletions
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) |