mirror of
https://github.com/neovim/neovim.git
synced 2025-09-10 05:18:16 +00:00

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.
51 lines
1.2 KiB
CMake
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)
|