diff options
author | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2024-11-04 20:45:29 +0100 |
---|---|---|
committer | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2024-11-04 20:45:29 +0100 |
commit | 676cc2b5619ecd517df42b07dbc2c22449a47179 (patch) | |
tree | 622546b5b6df3cc05171a1b016365ffd612abcd6 /tree-sitter-yts/package.nix | |
parent | style(yt/main): Use consistent use qualifications (diff) | |
download | yt-676cc2b5619ecd517df42b07dbc2c22449a47179.tar.gz yt-676cc2b5619ecd517df42b07dbc2c22449a47179.zip |
refactor(tree-sitter-yts): Move in tree
Diffstat (limited to '')
-rw-r--r-- | tree-sitter-yts/package.nix | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/tree-sitter-yts/package.nix b/tree-sitter-yts/package.nix new file mode 100644 index 0000000..11ab5a8 --- /dev/null +++ b/tree-sitter-yts/package.nix @@ -0,0 +1,59 @@ +# taken from nixpgks: pkgs/development/tools/parsing/tree-sitter/grammar.nix +{ + stdenv, + nodejs, + tree-sitter, + lib, +}: +# # Build a parser grammar and put the resulting shared object in `$out/parser` +# { +# # language name +# language ? "yts", +# version ? "1.0.0", +# src ? ./., +# location ? null, +# generate ? false, +# ... +# } @ args: +stdenv.mkDerivation { + pname = "yts-grammar"; + version = "1.0.0"; + + src = ./.; + + nativeBuildInputs = [nodejs tree-sitter]; + + CFLAGS = ["-Isrc" "-O2"]; + CXXFLAGS = ["-Isrc" "-O2"]; + + stripDebugList = ["parser"]; + + configurePhase = '' + tree-sitter generate + ''; + + # When both scanner.{c,cc} exist, we should not link both since they may be the same but in + # different languages. Just randomly prefer C++ if that happens. + buildPhase = '' + runHook preBuild + if [[ -e src/scanner.cc ]]; then + $CXX -fPIC -c src/scanner.cc -o scanner.o $CXXFLAGS + elif [[ -e src/scanner.c ]]; then + $CC -fPIC -c src/scanner.c -o scanner.o $CFLAGS + fi + $CC -fPIC -c src/parser.c -o parser.o $CFLAGS + rm -rf parser + $CXX -shared -o parser *.o + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + mkdir $out + mv parser $out/ + if [[ -d queries ]]; then + cp -r queries $out + fi + runHook postInstall + ''; +} |