From 64807303df34318c075a6c9ba1e9ee350135748f Mon Sep 17 00:00:00 2001 From: Björn Linse Date: Fri, 31 Jan 2020 23:40:02 +0100 Subject: build: include tree-sitter-c parser in bundled build --- third-party/cmake/BuildTreesitterParsers.cmake | 28 ++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 third-party/cmake/BuildTreesitterParsers.cmake (limited to 'third-party/cmake/BuildTreesitterParsers.cmake') diff --git a/third-party/cmake/BuildTreesitterParsers.cmake b/third-party/cmake/BuildTreesitterParsers.cmake new file mode 100644 index 0000000000..690a8fbed1 --- /dev/null +++ b/third-party/cmake/BuildTreesitterParsers.cmake @@ -0,0 +1,28 @@ +ExternalProject_Add(treesitter-c +PREFIX ${DEPS_BUILD_DIR} +URL ${TREESITER_C_URL} +DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/treesitter-c +DOWNLOAD_COMMAND ${CMAKE_COMMAND} + -DPREFIX=${DEPS_BUILD_DIR} + -DDOWNLOAD_DIR=${DEPS_DOWNLOAD_DIR}/treesitter-c + -DURL=${TREESITTER_C_URL} + -DEXPECTED_SHA256=${TREESITTER_C_SHA256} + -DTARGET=treesitter-c + -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR} + -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake +BUILD_IN_SOURCE 1 +CONFIGURE_COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_CURRENT_SOURCE_DIR}/cmake/TreesitterParserCMakeLists.txt + ${DEPS_BUILD_DIR}/src/treesitter-c/CMakeLists.txt + COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/treesitter-c/CMakeLists.txt + -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} + -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} + -DCMAKE_GENERATOR=${CMAKE_GENERATOR} + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} + -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} + # Pass toolchain + -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} + -DPARSERLANG=c + +BUILD_COMMAND ${CMAKE_COMMAND} --build . --config ${CMAKE_BUILD_TYPE} +INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config ${CMAKE_BUILD_TYPE}) -- cgit From 712298e1d3a8567b9857fa90beaa76e8922452c5 Mon Sep 17 00:00:00 2001 From: Matthieu Coudron Date: Fri, 7 Feb 2020 17:47:58 +0100 Subject: build: allow to skip treesitter C parser install if USE_BUNDLED_TS_PARSERS is set to off, don't try to install the parser. Distribs can install treesitter parsers directly into $CMAKE_LIBRARY_PATH/nvim (and users anywhere in rtp). Also fix the URL. --- third-party/cmake/BuildTreesitterParsers.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'third-party/cmake/BuildTreesitterParsers.cmake') diff --git a/third-party/cmake/BuildTreesitterParsers.cmake b/third-party/cmake/BuildTreesitterParsers.cmake index 690a8fbed1..ccc81ae97b 100644 --- a/third-party/cmake/BuildTreesitterParsers.cmake +++ b/third-party/cmake/BuildTreesitterParsers.cmake @@ -1,6 +1,6 @@ ExternalProject_Add(treesitter-c PREFIX ${DEPS_BUILD_DIR} -URL ${TREESITER_C_URL} +URL ${TREESITTER_C_URL} DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/treesitter-c DOWNLOAD_COMMAND ${CMAKE_COMMAND} -DPREFIX=${DEPS_BUILD_DIR} -- cgit From 3f217741ec84162383456468e6782a1859130d3c Mon Sep 17 00:00:00 2001 From: Florian Walch Date: Mon, 10 Feb 2020 21:50:36 +0100 Subject: Build tree-sitter out-of-source Avoids having CMakeCache.txt etc in https://github.com/neovim/deps, where it can cause trouble for Ubuntu PPA builds such as: > CMake Error: The source "/<>/neovim-0.5.0+ubuntu1+git202002090924-1f479ff-00e710e/.deps/build/src/treesitter-c/CMakeLists.txt" does not match the source "/home/travis/build/neovim/bot-ci/build/deps-src/build/src/treesitter-c/CMakeLists.txt" used to generate cache. Re-run cmake with a different source directory. --- third-party/cmake/BuildTreesitterParsers.cmake | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) (limited to 'third-party/cmake/BuildTreesitterParsers.cmake') diff --git a/third-party/cmake/BuildTreesitterParsers.cmake b/third-party/cmake/BuildTreesitterParsers.cmake index ccc81ae97b..5284a7fd62 100644 --- a/third-party/cmake/BuildTreesitterParsers.cmake +++ b/third-party/cmake/BuildTreesitterParsers.cmake @@ -10,19 +10,18 @@ DOWNLOAD_COMMAND ${CMAKE_COMMAND} -DTARGET=treesitter-c -DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR} -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake -BUILD_IN_SOURCE 1 -CONFIGURE_COMMAND ${CMAKE_COMMAND} -E copy +PATCH_COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/cmake/TreesitterParserCMakeLists.txt ${DEPS_BUILD_DIR}/src/treesitter-c/CMakeLists.txt - COMMAND ${CMAKE_COMMAND} ${DEPS_BUILD_DIR}/src/treesitter-c/CMakeLists.txt - -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} - -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} - -DCMAKE_GENERATOR=${CMAKE_GENERATOR} - -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} - -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} - # Pass toolchain - -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} - -DPARSERLANG=c +CMAKE_ARGS + -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} + -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} + -DCMAKE_GENERATOR=${CMAKE_GENERATOR} + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} + -DCMAKE_INSTALL_PREFIX=${DEPS_INSTALL_DIR} + # Pass toolchain + -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} + -DPARSERLANG=c BUILD_COMMAND ${CMAKE_COMMAND} --build . --config ${CMAKE_BUILD_TYPE} INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config ${CMAKE_BUILD_TYPE}) -- cgit