Subject: [bug#65149] [PATCH v2 4/4] gnu: Add sbcl-cl-gtk4.

From: ykonai <[email-masked]>
Date: Tue, 15 Aug 2023 21:49:39 +0200

* gnu/packages/lisp-xyz.scm (sbcl-cl-gtk4, cl-gtk4): New variables.
---
 gnu/packages/lisp-xyz.scm | 57 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 57 insertions(+)

diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index 2a47a21b65..a13363f69a 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -9677,6 +9677,63 @@ (define-public cl-glib
 (define-public ecl-cl-glib
   (sbcl-package->ecl-package sbcl-cl-glib))
 
+(define-public sbcl-cl-gtk4
+  (let ((commit "d116905e7b68508d03681a50b3b24d63e7b111e4")
+        (revision "1"))
+    (package
+      (name "sbcl-cl-gtk4")
+      (version (git-version "1.0.0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/bohonghuang/cl-gtk4")
+               (commit commit)))
+         (file-name (git-file-name "cl-gtk4" version))
+         (sha256
+          (base32 "0mprmmvbagnflvhynn51l42nbwr08rld99ls0c48m5lpjn0ja4zc"))))
+      (build-system asdf-build-system/sbcl)
+      (arguments
+       '(#:asd-systems '("cl-gtk4" "cl-gdk4")
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'copy-typelibs
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (let ((out (assoc-ref outputs "out"))
+                     (dirs
+                      (list (assoc-ref inputs "gtk")
+                            (assoc-ref inputs "graphene")
+                            (assoc-ref inputs "harfbuzz")
+                            (assoc-ref inputs "pango")
+                            (assoc-ref inputs "gdk-pixbuf"))))
+                 (map
+                  (lambda (d)
+                     (copy-recursively
+                      (string-append d "/lib/girepository-1.0")
+                      (string-append out "/lib/girepository-1.0")))
+                  dirs)))))))
+      (native-inputs
+       (list graphene pango harfbuzz gdk-pixbuf))
+      (inputs
+       (list
+        gtk
+        gobject-introspection
+        sbcl-cl-glib
+        sbcl-cl-gobject-introspection-wrapper))
+      (native-search-paths
+       (list (search-path-specification
+              (variable "GI_TYPELIB_PATH")
+              (separator ":")
+              (files (list "lib/girepository-1.0")))))
+      (home-page "https://github.com/bohonghuang/cl-gtk4")
+      (synopsis "GTK4 bindings for Common Lisp.")
+      (description "Provides GTK4 bindings for Common Lisp via Gobject Introspection, in the
+cl-gtk4 ASDF system.")
+      (license license:lgpl3))))
+
+(define-public cl-gtk4
+  (sbcl-package->cl-source-package sbcl-cl-gtk4))
+
 (define-public sbcl-cl-slug
   (let ((commit "ffb229d10f0d3f7f54e706791725225e200bf749")
         (revision "1"))
-- 
2.41.0