Files
neovim/cmake.deps/cmake/BuildTreesitterParsers.cmake
dundargoc 5dcf544f8a build: fix USE_EXISTING_SRC_DIR option
Since 0007aa50bd 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.
2023-03-05 18:45:34 +01:00

51 lines
1.2 KiB
CMake

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}
DOWNLOAD_NO_PROGRESS TRUE
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}
-D PARSERLANG=${TS_LANG}
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 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)