aboutsummaryrefslogtreecommitdiff
path: root/cmake.deps/cmake/BuildTreesitterParsers.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake.deps/cmake/BuildTreesitterParsers.cmake')
-rw-r--r--cmake.deps/cmake/BuildTreesitterParsers.cmake53
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()