1{ stdenv, fetchurl
2, libtool, pkgconfig, automake, autoconf, intltool
3, glib, gobjectIntrospection, gtk2, gtk_doc
4, clutter, clutter_gtk
5}:
6
7stdenv.mkDerivation rec {
8 name = "libmx-${version}";
9 version = "1.4.7";
10
11 src = fetchurl {
12 url = "https://github.com/clutter-project/mx/archive/${version}.tar.gz";
13 sha256 = "8a7514ea33c1dec7251d0141e24a702e7701dc9f00348cbcf1816925b7f74dbc";
14 };
15
16 # remove the following superfluous checks
17 preConfigure = ''
18 substituteInPlace "autogen.sh" \
19 --replace '`which intltoolize`' '"x"' \
20 --replace '`which gtkdocize`' '"x"' \
21 --replace '`which autoreconf`' '"x"'
22 '';
23
24 configureFlags = [ "--enable-introspection"
25 "--without-startup-notification"
26 "--without-dbus"
27 "--without-glade"
28 "--without-clutter-imcontext"
29 "--without-clutter-gesture"
30 ];
31
32 configureScript = "sh autogen.sh";
33
34 buildInputs = [
35 pkgconfig automake autoconf libtool
36 intltool
37 gobjectIntrospection glib
38 gtk2 gtk_doc clutter clutter_gtk
39 ];
40
41 # patch to resolve GL errors
42 # source : https://github.com/clutter-project/mx/pull/62
43 preBuild = ''
44 sed -i 's/GLushort/gushort/g' mx/mx-deform-texture.c
45 sed -i 's/GLfloat/gfloat/g' mx/mx-texture-frame.c
46 '';
47
48 meta = with stdenv.lib; {
49 homepage = http://www.clutter-project.org/;
50 description = "A Clutter-based toolkit";
51 longDescription =
52 ''Mx is a widget toolkit using Clutter that provides a set of standard
53 interface elements, including buttons, progress bars, scroll bars and
54 others. It also implements some standard managers. One other interesting
55 feature is the possibility setting style properties from a CSS format
56 file.'';
57 license = licenses.lgpl21;
58 maintainers = with maintainers; [ cstrahan ];
59 };
60}