mirror of
https://github.com/neovim/neovim
synced 2025-07-15 16:51:49 +00:00
Problem: Installing treesitter parser is hard (harder than climbing to heaven). Solution: Add optional support for wasm parsers with `wasmtime`. Notes: * Needs to be enabled by setting `ENABLE_WASMTIME` for tree-sitter and Neovim. Build with `make CMAKE_EXTRA_FLAGS=-DENABLE_WASMTIME=ON DEPS_CMAKE_FLAGS=-DENABLE_WASMTIME=ON` * Adds optional Rust (obviously) and C11 dependencies. * Wasmtime comes with a lot of features that can negatively affect Neovim performance due to library and symbol table size. Make sure to build with minimal features and full LTO. * To reduce re-compilation times, install `sccache` and build with `RUSTC_WRAPPER=<path/to/sccache> make ...`
18 lines
401 B
CMake
18 lines
401 B
CMake
cmake_minimum_required(VERSION 3.13)
|
|
project(treesitter C)
|
|
|
|
add_compile_options(-w)
|
|
|
|
add_library(tree-sitter lib/src/lib.c)
|
|
target_include_directories(tree-sitter
|
|
PRIVATE lib/src lib/src/wasm lib/include)
|
|
|
|
install(FILES
|
|
lib/include/tree_sitter/api.h
|
|
DESTINATION include/tree_sitter)
|
|
|
|
include(GNUInstallDirs)
|
|
install(TARGETS tree-sitter DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
|
|
|
# vim: set ft=cmake:
|