mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-26 17:03:01 +00:00
tree-sitter: patch out web-ui by default, to drop emscripten
The tree-sitter build closure is pretty lean by default, but the optional web-ui requires emscripten to compile the web interface javascript/wasm code. This is clearly not worth the increase in build closure size, and since emscripten is broken more often than not, let’s patch it out by default. If somebody /really/ needs the web-ui, there is a `webUISupport` flag.
This commit is contained in:
parent
fb875dcf6f
commit
c505e57173
@ -2,10 +2,12 @@
|
||||
, fetchgit, fetchFromGitHub, fetchurl
|
||||
, writeShellScript, runCommand, which
|
||||
, rustPlatform, jq, nix-prefetch-git, xe, curl, emscripten
|
||||
, Security
|
||||
, callPackage
|
||||
|
||||
, enableShared ? true
|
||||
, enableStatic ? false
|
||||
, Security
|
||||
, webUISupport ? false
|
||||
}:
|
||||
|
||||
# TODO: move to carnix or https://github.com/kolloch/crate2nix
|
||||
@ -54,20 +56,25 @@ in rustPlatform.buildRustPackage {
|
||||
pname = "tree-sitter";
|
||||
inherit src version cargoSha256;
|
||||
|
||||
buildInputs = lib.optionals stdenv.isDarwin [ Security ];
|
||||
buildInputs =
|
||||
lib.optionals stdenv.isDarwin [ Security ];
|
||||
nativeBuildInputs =
|
||||
[ which ]
|
||||
++ lib.optionals webUISupport [ emscripten ];
|
||||
|
||||
nativeBuildInputs = [ emscripten which ];
|
||||
|
||||
postPatch = ''
|
||||
# needed for the tests
|
||||
rm -rf test/fixtures/grammars
|
||||
ln -s ${grammars} test/fixtures/grammars
|
||||
postPatch = lib.optionalString (!webUISupport) ''
|
||||
# remove web interface
|
||||
sed -e '/pub mod web_ui/d' \
|
||||
-i cli/src/lib.rs
|
||||
sed -e 's/web_ui,//' \
|
||||
-e 's/web_ui::serve(¤t_dir.*$/println!("ERROR: web-ui is not available in this nixpkgs build; enable the webUISupport"); std::process::exit(1);/' \
|
||||
-i cli/src/main.rs
|
||||
'';
|
||||
|
||||
# Compile web assembly with emscripten. The --debug flag prevents us from
|
||||
# minifying the JavaScript; passing it allows us to side-step more Node
|
||||
# JS dependencies for installation.
|
||||
preBuild = ''
|
||||
preBuild = lib.optionalString webUISupport ''
|
||||
bash ./script/build-wasm --debug
|
||||
'';
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user