mirror of
https://github.com/neovim/neovim.git
synced 2024-12-20 11:15:14 -07:00
61da959bb4
59d5f692f
removed cmake.deps/cmake/DownloadAndExtractFile.cmake and
support for USE_EXISTING_SRC_DIR. The Ubuntu nightly PPA still relies
on USE_EXISTING_SRC_DIR functionality since it can't access the network
during the build.
Supplying an empty value for ExternalProject_Add()'s URL value appears
to provide the needed mechanism to avoid re-downloading when the sources
are already present. This is undocumented behavior, though, so it may
break in the future.
Now, if USE_EXISTING_SRC_DIR is set, the ExternalProject's URL variable
is unset, preventing the download and erroring out if the source doesn't
actually exist.
25 lines
1.0 KiB
CMake
25 lines
1.0 KiB
CMake
function(BuildTSParser LANG TS_URL TS_SHA256 TS_CMAKE_FILE)
|
|
set(NAME treesitter-${LANG})
|
|
if(USE_EXISTING_SRC_DIR)
|
|
unset(TS_URL)
|
|
endif()
|
|
ExternalProject_Add(${NAME}
|
|
URL ${TS_URL}
|
|
URL_HASH SHA256=${TS_SHA256}
|
|
DOWNLOAD_NO_PROGRESS TRUE
|
|
DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/${NAME}
|
|
CMAKE_CACHE_ARGS
|
|
-DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES}
|
|
PATCH_COMMAND ${CMAKE_COMMAND} -E copy
|
|
${CMAKE_CURRENT_SOURCE_DIR}/cmake/${TS_CMAKE_FILE}
|
|
${DEPS_BUILD_DIR}/src/${NAME}/CMakeLists.txt
|
|
CMAKE_ARGS
|
|
-DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR}
|
|
-DPARSERLANG=${LANG})
|
|
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)
|