diff options
Diffstat (limited to 'cmake.deps/cmake/BuildTreesitterParsers.cmake')
-rw-r--r-- | cmake.deps/cmake/BuildTreesitterParsers.cmake | 53 |
1 files changed, 21 insertions, 32 deletions
diff --git a/cmake.deps/cmake/BuildTreesitterParsers.cmake b/cmake.deps/cmake/BuildTreesitterParsers.cmake index ef7d521249..56c8a5a7c6 100644 --- a/cmake.deps/cmake/BuildTreesitterParsers.cmake +++ b/cmake.deps/cmake/BuildTreesitterParsers.cmake @@ -1,14 +1,29 @@ +# 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;URL;SHA256;CMAKE_FILE" + "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} + URL ${URL} + URL_HASH SHA256=${HASH} DOWNLOAD_NO_PROGRESS TRUE DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/${NAME} PATCH_COMMAND ${CMAKE_COMMAND} -E copy @@ -19,32 +34,6 @@ function(BuildTSParser) CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS}) endfunction() -BuildTSParser( - LANG c - URL ${TREESITTER_C_URL} - SHA256 ${TREESITTER_C_SHA256} - CMAKE_FILE TreesitterParserCMakeLists.txt) - -BuildTSParser( - LANG lua - URL ${TREESITTER_LUA_URL} - SHA256 ${TREESITTER_LUA_SHA256} - CMAKE_FILE TreesitterParserCMakeLists.txt) - -BuildTSParser( - LANG vim - URL ${TREESITTER_VIM_URL} - SHA256 ${TREESITTER_VIM_SHA256} - CMAKE_FILE TreesitterParserCMakeLists.txt) - -BuildTSParser( - LANG vimdoc - URL ${TREESITTER_VIMDOC_URL} - SHA256 ${TREESITTER_VIMDOC_SHA256} - CMAKE_FILE TreesitterParserCMakeLists.txt) - -BuildTSParser( - LANG query - URL ${TREESITTER_QUERY_URL} - SHA256 ${TREESITTER_QUERY_SHA256} - CMAKE_FILE TreesitterParserCMakeLists.txt) +foreach(lang c lua vim vimdoc query) + BuildTSParser(LANG ${lang}) +endforeach() |