summary refs log tree commit diff
path: root/pkgs/development/tools/parsing/tree-sitter/library.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/tools/parsing/tree-sitter/library.nix')
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/library.nix30
1 files changed, 30 insertions, 0 deletions
diff --git a/pkgs/development/tools/parsing/tree-sitter/library.nix b/pkgs/development/tools/parsing/tree-sitter/library.nix
new file mode 100644
index 00000000000..2d5d3e7d0b4
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/library.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, language
+, tree-sitter
+, version
+, source
+}:
+
+stdenv.mkDerivation {
+
+  pname = "tree-sitter-${language}-library";
+  inherit version;
+
+  src = source;
+
+  buildInputs = [ tree-sitter ];
+
+  dontUnpack = true;
+  configurePhase= ":";
+  buildPhase = ''
+    runHook preBuild
+    $CC -I$src/src/ -shared -o parser -Os $src/src/parser.c
+    runHook postBuild
+  '';
+  installPhase = ''
+    runHook preInstall
+    mkdir $out
+    mv parser $out/
+    runHook postInstall
+  '';
+}