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 nativeBuildInputs = [ pkgconfig ];
35 buildInputs = [
36 automake autoconf libtool
37 intltool
38 gobjectIntrospection glib
39 gtk2 gtk-doc clutter clutter-gtk
40 ];
41
42 # patch to resolve GL errors
43 # source : https://github.com/clutter-project/mx/pull/62
44 preBuild = ''
45 sed -i 's/GLushort/gushort/g' mx/mx-deform-texture.c
46 sed -i 's/GLfloat/gfloat/g' mx/mx-texture-frame.c
47 '';
48
49 meta = with stdenv.lib; {
50 homepage = http://www.clutter-project.org/;
51 description = "A Clutter-based toolkit";
52 longDescription =
53 ''Mx is a widget toolkit using Clutter that provides a set of standard
54 interface elements, including buttons, progress bars, scroll bars and
55 others. It also implements some standard managers. One other interesting
56 feature is the possibility setting style properties from a CSS format
57 file.'';
58 license = licenses.lgpl21;
59 maintainers = with maintainers; [ cstrahan ];
60 platforms = with platforms; linux;
61 };
62}