summary refs log tree commit diff
path: root/gnu/packages/gtk.scm
diff options
context:
space:
mode:
author宋文武 <iyzsong@gmail.com>2015-05-19 16:32:09 +0800
committer宋文武 <iyzsong@gmail.com>2015-05-23 11:21:49 +0800
commit52b8beb1095bbf9152897656b19de6190235a918 (patch)
treee4bcc3e62032eae564980e7202fbfe3941003524 /gnu/packages/gtk.scm
parent508891e62a5f569cc791f45e1f489f9cc74ff5fc (diff)
downloadguix-52b8beb1095bbf9152897656b19de6190235a918.tar.gz
gnu: gtk+: Add SVG support to 'gtk-encode-symbolic-svg'.
* gnu/packages/gtk.scm (gtk+)[inputs]: Add librsvg.
  [arguments]: Add 'wrap-gtk-encode-symbolic-svg' phase.
Diffstat (limited to 'gnu/packages/gtk.scm')
-rw-r--r--gnu/packages/gtk.scm16
1 files changed, 14 insertions, 2 deletions
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 9a7e8f9109..f518992498 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -505,7 +505,8 @@ application suites.")
       ("libxdamage" ,libxdamage)
       ("pango" ,pango)))
    (inputs
-    `(("libxml2" ,libxml2)
+    `(("librsvg" ,librsvg)                        ;for gtk-encode-symbolic-svg
+      ("libxml2" ,libxml2)
       ("cups" ,cups)))                            ;for printing support
    (native-inputs
     `(("perl" ,perl)
@@ -537,7 +538,18 @@ application suites.")
                         "demos/gtk-demo/Makefile.in")
            (("gtk-update-icon-cache") "$(bindir)/gtk-update-icon-cache"))
          #t)
-       %standard-phases)))))
+       (alist-cons-after
+        'install 'wrap-gtk-encode-symbolic-svg
+        ;; By using GdkPixbuf, gtk-encode-symbolic-svg needs to know
+        ;; librsvg's loaders.cache to handle SVG files.
+        (lambda* (#:key inputs outputs #:allow-other-keys)
+          (let* ((out (assoc-ref outputs "out"))
+                 (prog (string-append out "/bin/gtk-encode-symbolic-svg"))
+                 (librsvg (assoc-ref inputs "librsvg"))
+                 (loaders.cache (find-files librsvg "^loaders\\.cache$")))
+            (wrap-program prog
+              `("GDK_PIXBUF_MODULE_FILE" = ,loaders.cache))))
+        %standard-phases))))))
 
 ;;;
 ;;; Guile bindings.