gnu: Add libsigc++ and glibmm.
authorLudovic Courtès <ludo@gnu.org>
Sat, 5 Oct 2013 22:24:06 +0000 (00:24 +0200)
committerLudovic Courtès <ludo@gnu.org>
Sat, 5 Oct 2013 22:24:06 +0000 (00:24 +0200)
* gnu/packages/glib.scm (libsigc++, glibmm): New variable.

gnu/packages/glib.scm

index 3be0327..0d0f186 100644 (file)
@@ -40,6 +40,7 @@
   #:use-module (gnu packages bash)
   #:use-module (gnu packages file)
   #:use-module (gnu packages xorg)
+  #:use-module (gnu packages m4)
 
   ;; Export variables up-front to allow circular dependency with the 'xorg'
   ;; module.
@@ -48,7 +49,9 @@
             gobject-introspection
             dbus-glib
             intltool
-            itstool))
+            itstool
+            libsigc++
+            glibmm))
 
 (define dbus
   (package
@@ -314,3 +317,69 @@ translated.")
      "GLib bindings for D-Bus.  The package is obsolete and superseded
 by GDBus included in Glib.")
     (license license:gpl2)))                     ; or Academic Free License 2.1
+
+(define libsigc++
+  (package
+    (name "libsigc++")
+    (version "2.3.1")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "mirror://gnome/sources/libsigc++/2.3/libsigc++-"
+                                 version ".tar.xz"))
+             (sha256
+              (base32
+               "14q3sq6d43f6wfcmwhw4v1aal4ba0h5x9v6wkxy2dnqznd95il37"))))
+    (build-system gnu-build-system)
+    (inputs `(("pkg-config" ,pkg-config)))
+    (native-inputs `(("m4" ,m4)))
+    (home-page "http://libsigc.sourceforge.net/")
+    (synopsis "Type-safe callback system for standard C++")
+    (description
+     "libsigc++ implements a type-safe callback system for standard C++.  It
+allows you to define signals and to connect those signals to any callback
+function, either global or a member function, regardless of whether it is
+static or virtual.
+
+It also contains adaptor classes for connection of dissimilar callbacks and
+has an ease of use unmatched by other C++ callback libraries.")
+    (license license:lgpl2.1+)))
+
+(define glibmm
+  (package
+    (name "glibmm")
+    (version "2.37.7")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "mirror://gnome/sources/glibmm/2.37/glibmm-"
+                                 version ".tar.xz"))
+             (sha256
+              (base32
+               "0mms4yl5izsya1135772z4jkb184ss86x0wlg6dm7yvwxvb6bjlw"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases (alist-cons-before
+                 'build 'pre-build
+                 (lambda _
+                   ;; This test uses /etc/fstab as an example file to read
+                   ;; from; choose a better example.
+                   (substitute* "tests/giomm_simple/main.cc"
+                     (("/etc/fstab")
+                      (string-append (getcwd)
+                                     "/tests/giomm_simple/main.cc")))
+
+                   ;; This test does a DNS lookup, and then expects to be able
+                   ;; to open a TLS session; just skip it.
+                   (substitute* "tests/giomm_tls_client/main.cc"
+                     (("Gio::init.*$")
+                      "return 77;\n")))
+                 %standard-phases)))
+    (inputs `(("pkg-config" ,pkg-config)))
+    (propagated-inputs
+     `(("libsigc++" ,libsigc++)
+       ("glib" ,glib)))
+    (home-page "http://gtkmm.org/")
+    (synopsis "C++ interface to the GLib library")
+    (description
+     "glibmm provides a C++ programming interface to the part of GLib that are
+useful for C++.")
+    (license license:lgpl2.1+)))