mirror of
https://github.com/neovim/neovim
synced 2025-07-16 09:11:51 +00:00
This will reduce required boilerplate, but more importantly it will automatically unset variables ending on URL. This will help people needing to avoid to unset the URL variable each time a new dependency is added. It is possible that this may remove a non-download variable ending on "URL" in the future, however, the risk of this is likely much lower than the risk of someone forgetting to unset the variable.
21 lines
1011 B
CMake
21 lines
1011 B
CMake
function(BuildTSParser LANG TS_URL TS_SHA256 TS_CMAKE_FILE)
|
|
set(NAME treesitter-${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=${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)
|