diff options
author | dundargoc <33953936+dundargoc@users.noreply.github.com> | 2023-03-05 18:45:34 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-05 18:45:34 +0100 |
commit | 5dcf544f8a879eaac29ee7cfc9eee6f0e027415f (patch) | |
tree | 36fbd3add4853dbb57bf78530475f2b20d3c443e | |
parent | f636619d9e4326f6916ef06829acfd22619a1308 (diff) | |
download | rneovim-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.cmake | 46 |
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) |