summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/packages/glib.scm46
1 files changed, 46 insertions, 0 deletions
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 815fafcbfb..a6b86795a8 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -26,9 +26,12 @@
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages bison)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages flex)
   #:use-module ((gnu packages gettext)
                 #:renamer (symbol-prefix-proc 'guix:))
+  #:use-module (gnu packages gtk)
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
@@ -171,6 +174,49 @@ dynamic loading, and an object system.")
    (home-page "http://developer.gnome.org/glib/")
    (license license:lgpl2.0+)))                        ; some files are under lgpl2.1+
 
+(define-public gobject-introspection
+  (package
+    (name "gobject-introspection")
+    (version "1.38.0")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "http://ftp.gnome.org/pub/GNOME/sources/"
+                   "gobject-introspection/"
+                   (substring version 0 (string-rindex version #\.))
+                   "/gobject-introspection-"
+                   version ".tar.xz"))
+             (sha256
+              (base32 "0wvxyvgajmms2bb6k3pf1rdpnd79xdxamykzvxzmcyn1ag9yax9m"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("bison" ,bison)
+       ("cairo" ,cairo)
+       ("flex" ,flex)
+       ("glib" ,glib)
+       ("libffi" ,libffi)
+       ("pkg-config" ,pkg-config)
+       ("python-2" ,python-2)))
+    (arguments
+     `(#:phases
+        (alist-replace
+         'configure
+         (lambda* (#:key #:allow-other-keys #:rest args)
+          (let ((configure (assoc-ref %standard-phases 'configure)))
+           ;; giscanner/sourcescanner.py looks for 'CC', let's set it here.
+           (setenv "CC" "gcc")
+           (apply configure args)))
+         %standard-phases)))
+    (home-page "https://wiki.gnome.org/GObjectIntrospection")
+    (synopsis "Generate interface introspection data for GObject libraries")
+    (description
+     "GObject introspection is a middleware layer between C libraries (using
+GObject) and language bindings.  The C library can be scanned at compile time
+and generate a metadata file, in addition to the actual native C library.  Then
+at runtime, language bindings can read this metadata and automatically provide
+bindings to call into the C library.")
+    ; Some bits are distributed under the LGPL2+, others under the GPL2+
+    (license license:gpl2+)))
+
 (define intltool
   (package
     (name "intltool")