summary refs log tree commit diff
path: root/gnu/packages
diff options
context:
space:
mode:
authorZheng Junjie <zhengjunjie@iscas.ac.cn>2023-10-26 23:03:19 +0800
committerAndrew Tropin <andrew@trop.in>2023-10-27 16:10:04 +0400
commitfca99c89b8f29f3156786f6d943748f830279fdc (patch)
tree87e4158a86c13fd643dc4e4ace08b72b5e3709c6 /gnu/packages
parentc11b9133d29a815d947b556551563c8dc4a68a35 (diff)
downloadguix-fca99c89b8f29f3156786f6d943748f830279fdc.tar.gz
gnu: Add guile-ts.
* gnu/packages/guile-xyz.scm (guile-ts): New variable.

Co-authored-by: Andrew Tropin <andrew@trop.in>
Signed-off-by: Andrew Tropin <andrew@trop.in>
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/guile-xyz.scm48
1 files changed, 48 insertions, 0 deletions
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index 90f51cf741..0eec87f768 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -46,6 +46,7 @@
 ;;; Copyright © 2022, 2023 Zheng Junjie <873216071@qq.com>
 ;;; Copyright © 2022 Evgeny Pisemsky <evgeny@pisemsky.com>
 ;;; Copyright © 2022 jgart <jgart@dismail.de>
+;;; Copyright © 2023 Andrew Tropin <andrew@trop.in>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -119,6 +120,7 @@
   #:use-module (gnu packages tex)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages tls)
+  #:use-module (gnu packages tree-sitter)
   #:use-module (gnu packages version-control)
   #:use-module (gnu packages webkit)
   #:use-module (gnu packages xdisorg)
@@ -4588,6 +4590,52 @@ models and also supports a rich set of boolean query operators.")
 according to Bitorrent BEP003.")
     (license license:gpl3+)))
 
+(define-public guile-ts
+  (package
+    (name "guile-ts")
+    (version "0.1.0")
+    (source (origin (method git-fetch)
+                    (uri (git-reference
+                          (url
+                           "https://github.com/Z572/guile-ts")
+                          (commit (string-append "v" version))))
+                    (file-name (git-file-name name version))
+                    (sha256
+                     (base32
+                      "0xmq2d3mv921m0g1hqw6bjzh4m622g2c7pal11ks7vjn0m8d4bxj"))))
+    (build-system gnu-build-system)
+    (arguments
+     (list #:make-flags #~(list "GUILE_AUTO_COMPILE=0")
+           #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'unpack 'set-extension-path
+                 (lambda* (#:key outputs #:allow-other-keys)
+                   (substitute*
+                       (find-files "." ".*\\.scm")
+                     (("\\(load-extension \"libguile_ts\" *\"(.*)\"\\)" _ o)
+                      (string-append
+                       (object->string
+                        `(or (false-if-exception
+                              (load-extension "libguile_ts" ,o))
+                             (load-extension
+                              ,(string-append
+                                #$output
+                                "/lib/libguile_ts.so")
+                              ,o)))))))))))
+    (native-inputs
+     (list autoconf automake libtool texinfo pkg-config guile-3.0))
+    (inputs
+     (list guile-3.0 tree-sitter))
+    (native-search-paths
+     (list (search-path-specification
+            (variable "TREE_SITTER_GRAMMAR_PATH")
+            (files '("lib/tree-sitter")))))
+    (synopsis "Guile bindings to the Tree-sitter parsing library")
+    (description "This package provides Guile bindings to the Tree-sitter
+parsing library.")
+    (home-page "https://github.com/Z572/guile-ts")
+    (license license:gpl3+)))
+
 (define-public guile-irc
   (let ((commit "7d08ce6fdcb87ac668c5d3bfd5584247805507bb")
         (revision "1"))