gnu: gtk+: enable introspection.

* gnu/packages/gtk.scm (atk, gdk-pixbuf, gtk+, pango): enable introspection
* guix/build/gnome.scm: New file.
This commit is contained in:
Cyril Roelandt 2013-10-15 00:14:34 +02:00
parent 503c5f6d5d
commit af949e8ee7
4 changed files with 76 additions and 6 deletions

View File

@ -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 \

View File

@ -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

View File

@ -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)))))

31
guix/build/gnome.scm Normal file
View File

@ -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"))