aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordundargoc <33953936+dundargoc@users.noreply.github.com>2023-03-05 18:45:34 +0100
committerGitHub <noreply@github.com>2023-03-05 18:45:34 +0100
commit5dcf544f8a879eaac29ee7cfc9eee6f0e027415f (patch)
tree36fbd3add4853dbb57bf78530475f2b20d3c443e
parentf636619d9e4326f6916ef06829acfd22619a1308 (diff)
downloadrneovim-5dcf544f8a879eaac29ee7cfc9eee6f0e027415f.tar.gz
rneovim-5dcf544f8a879eaac29ee7cfc9eee6f0e027415f.tar.bz2
rneovim-5dcf544f8a879eaac29ee7cfc9eee6f0e027415f.zip
build: fix USE_EXISTING_SRC_DIR option
Since 0007aa50bd3d54259bb4ae717c114f5524ec59fa the build unsets all URL variable immediately when USE_EXISTING_SRC_DIR is TRUE, which is correct. However, this causes the function BuildTSParser to break down as cmake functions aren't traditionally equipped to deal with empty variables. Using cmake_parse_arguments fixes this issue.
-rw-r--r--cmake.deps/cmake/BuildTreesitterParsers.cmake46
1 files changed, 38 insertions, 8 deletions
diff --git a/cmake.deps/cmake/BuildTreesitterParsers.cmake b/cmake.deps/cmake/BuildTreesitterParsers.cmake
index 1c5d69882d..1202e4f7a4 100644
--- a/cmake.deps/cmake/BuildTreesitterParsers.cmake
+++ b/cmake.deps/cmake/BuildTreesitterParsers.cmake
@@ -1,5 +1,11 @@
-function(BuildTSParser LANG TS_URL TS_SHA256 TS_CMAKE_FILE)
- set(NAME treesitter-${LANG})
+function(BuildTSParser)
+ cmake_parse_arguments(TS
+ ""
+ "LANG;URL;SHA256;CMAKE_FILE"
+ ""
+ ${ARGN})
+
+ set(NAME treesitter-${TS_LANG})
ExternalProject_Add(${NAME}
URL ${TS_URL}
URL_HASH SHA256=${TS_SHA256}
@@ -9,12 +15,36 @@ 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 ${DEPS_CMAKE_ARGS}
- -D PARSERLANG=${LANG}
+ -D PARSERLANG=${TS_LANG}
CMAKE_CACHE_ARGS ${DEPS_CMAKE_CACHE_ARGS})
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)
-BuildTSParser(query ${TREESITTER_QUERY_URL} ${TREESITTER_QUERY_SHA256} TreesitterParserCMakeLists.txt)
+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 help
+ URL ${TREESITTER_HELP_URL}
+ SHA256 ${TREESITTER_HELP_SHA256}
+ CMAKE_FILE TreesitterParserCMakeLists.txt)
+
+BuildTSParser(
+ LANG query
+ URL ${TREESITTER_QUERY_URL}
+ SHA256 ${TREESITTER_QUERY_SHA256}
+ CMAKE_FILE TreesitterParserCMakeLists.txt)