~ruther/guix-local

af949e8ee7e134e30e559dcfa9cf59a3d28ea350 — Cyril Roelandt 12 years ago 503c5f6
gnu: gtk+: enable introspection.

* gnu/packages/gtk.scm (atk, gdk-pixbuf, gtk+, pango): enable introspection
* guix/build/gnome.scm: New file.
4 files changed, 76 insertions(+), 6 deletions(-)

M Makefile.am
M gnu/packages/glib.scm
M gnu/packages/gtk.scm
A guix/build/gnome.scm
M Makefile.am => Makefile.am +1 -0
@@ 52,6 52,7 @@ MODULES =					\
  guix/ui.scm					\
  guix/build/download.scm			\
  guix/build/cmake-build-system.scm		\
  guix/build/gnome.scm				\
  guix/build/gnu-build-system.scm		\
  guix/build/gnu-dist.scm			\
  guix/build/linux-initrd.scm			\

M gnu/packages/glib.scm => gnu/packages/glib.scm +4 -1
@@ 184,9 184,12 @@ dynamic loading, and an object system.")
       ("cairo" ,cairo)
       ("flex" ,flex)
       ("glib" ,glib)
       ("libffi" ,libffi)
       ("pkg-config" ,pkg-config)
       ("python-2" ,python-2)))
    (propagated-inputs
     `(;; In practice, GIR users will need libffi when using
       ;; gobject-introspection.
       ("libffi" ,libffi)))
    (arguments
     `(#:phases
        (alist-replace

M gnu/packages/gtk.scm => gnu/packages/gtk.scm +40 -5
@@ 53,7 53,8 @@
             (base32
              "1c2hbg66wfvibsz2ia0ri48yr62751fn950i97c53j3b0fjifsb3"))))
   (build-system gnu-build-system)
   (inputs `(("glib" ,glib)))
   (inputs `(("glib" ,glib)
             ("gobject-introspection" ,gobject-introspection)))
   (native-inputs `(("pkg-config" ,pkg-config)))
   (synopsis "GNOME accessibility toolkit")
   (description


@@ 155,7 156,8 @@ affine transformation (scale, rotation, shear, etc.)")
    `(("cairo" ,cairo)
      ("harfbuzz" ,harfbuzz)))
   (inputs
    `(("zlib" ,zlib)))
    `(("gobject-introspection" ,gobject-introspection)
      ("zlib" ,zlib)))
   (native-inputs
    `(("pkg-config" ,pkg-config)))
   (synopsis "GNOME text and font handling library")


@@ 234,6 236,7 @@ printing and other features typical of a source code editor.")
   (build-system gnu-build-system)
   (inputs
    `(("glib" ,glib)
      ("gobject-introspection", gobject-introspection)
      ("libjpeg" ,libjpeg)
      ("libpng" ,libpng)
      ("libtiff" ,libtiff)))


@@ 365,17 368,24 @@ application suites.")
      ("libxinerama" ,libxinerama)
      ("pango" ,pango)))
   (inputs
    `(("libxml2" ,libxml2)))
    `(("gobject-introspection" ,gobject-introspection)
      ("libxml2" ,libxml2)))
   (native-inputs
     `(("perl" ,perl)
      ("pkg-config" ,pkg-config)
      ("python-wrapper" ,python-wrapper)
      ("xorg-server" ,xorg-server)))
   (arguments
    `(#:phases
    `(#:modules ((guix build gnome)
                 (guix build gnu-build-system)
                 (guix build utils))
      #:imported-modules ((guix build gnome)
                          (guix build gnu-build-system)
                          (guix build utils))
      #:phases
      (alist-replace
       'configure
       (lambda* (#:key #:allow-other-keys #:rest args)
       (lambda* (#:key inputs #:allow-other-keys #:rest args)
         (let ((configure (assoc-ref %standard-phases 'configure)))
           ;; Disable most tests, failing in the chroot with the message:
           ;; D-Bus library appears to be incorrectly set up; failed to read


@@ 384,6 394,31 @@ application suites.")
           ;; See the manual page for dbus-uuidgen to correct this issue.
           (substitute* "testsuite/Makefile.in"
            (("SUBDIRS = gdk gtk a11y css reftests") "SUBDIRS = gdk"))

	   ;; We need to tell GIR where it can find some of the required .gir
           ;; files.
           (substitute* "gdk/Makefile.in"
            (("--add-include-path=../gdk")
             (string-append
              "--add-include-path=../gdk"
              " --add-include-path=" (gir-directory inputs "gdk-pixbuf")
              " --add-include-path=" (gir-directory inputs "pango")))
            (("--includedir=\\.")
             (string-append "--includedir=."
              " --includedir=" (gir-directory inputs "gdk-pixbuf")
              " --includedir=" (gir-directory inputs "pango"))))

           (substitute* "gtk/Makefile.in"
            (("--add-include-path=../gdk")
             (string-append "--add-include-path=../gdk"
              " --add-include-path=" (gir-directory inputs "atk")
              " --add-include-path=" (gir-directory inputs "gdk-pixbuf")
              " --add-include-path=" (gir-directory inputs "pango")))
            (("--includedir=../gdk")
             (string-append "--includedir=../gdk"
              " --includedir=" (gir-directory inputs "atk")
              " --includedir=" (gir-directory inputs "gdk-pixbuf")
              " --includedir=" (gir-directory inputs "pango"))))
           (apply configure args)))
       %standard-phases)))))


A guix/build/gnome.scm => guix/build/gnome.scm +31 -0
@@ 0,0 1,31 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

(define-module (guix build gnome)
  #:export (gir-directory))

;;; Commentary:
;;;
;;; Tools commonly used when building GNOME programs.
;;;
;;; Code:

(define (gir-directory inputs pkg-name)
  "Return the GIR directory name for PKG-NAME found from INPUTS."
  (string-append (assoc-ref inputs pkg-name)
                 "/share/gir-1.0"))