aboutsummaryrefslogtreecommitdiff
path: root/cmake.deps/cmake/BuildTreesitterParsers.cmake
blob: e08792f62ad0dac4c796fc0cb55fd5d6c8e59b53 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
function(BuildTSParser LANG TS_URL TS_SHA256 TS_CMAKE_FILE)
  set(NAME treesitter-${LANG})
  ExternalProject_Add(${NAME}
  PREFIX ${DEPS_BUILD_DIR}
  URL ${TREESITTER_C_URL}
  DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/${NAME}
  CMAKE_CACHE_ARGS
    -DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES}
  DOWNLOAD_COMMAND ${CMAKE_COMMAND}
    -DPREFIX=${DEPS_BUILD_DIR}
    -DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/${NAME}
    -DURL=${TS_URL}
    -DEXPECTED_SHA256=${TS_SHA256}
    -DTARGET=${NAME}
    -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR}
    -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake
  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)