mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 12:27:24 +00:00 
			
		
		
		
	 688b961d13
			
		
	
	688b961d13
	
	
	
		
			
			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 ...`
		
			
				
	
	
		
			12 lines
		
	
	
		
			547 B
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			12 lines
		
	
	
		
			547 B
		
	
	
	
		
			CMake
		
	
	
	
	
	
| # wasmtime is a chungus -- optimize _extra hard_ to keep nvim svelte
 | |
| get_externalproject_options(wasmtime ${DEPS_IGNORE_SHA})
 | |
| ExternalProject_Add(wasmtime
 | |
|   DOWNLOAD_DIR ${DEPS_DOWNLOAD_DIR}/wasmtime
 | |
|   SOURCE_SUBDIR crates/c-api
 | |
|   CMAKE_ARGS ${DEPS_CMAKE_ARGS}
 | |
|     -D WASMTIME_FASTEST_RUNTIME=ON       # build with full LTO
 | |
|     -D WASMTIME_DISABLE_ALL_FEATURES=ON  # don't need all that crap...
 | |
|     -D WASMTIME_FEATURE_CRANELIFT=ON     # ...except this one (compiles wasm to platform code)
 | |
|   USES_TERMINAL_BUILD TRUE
 | |
|   ${EXTERNALPROJECT_OPTIONS})
 |