1{ lib
2, stdenv
3, fetchurl
4, pkg-config
5, libGLU
6, libGL
7, libX11
8, libXext
9, libXfixes
10, libXdamage
11, libXcomposite
12, libXi
13, libxcb
14, cogl
15, pango
16, atk
17, json-glib
18, gobject-introspection
19, gtk3
20, gnome
21, libinput
22, libgudev
23, libxkbcommon
24}:
25
26let
27 pname = "clutter";
28 version = "1.26.4";
29in
30stdenv.mkDerivation rec {
31 name = "${pname}-${version}";
32
33 src = fetchurl {
34 url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${name}.tar.xz";
35 sha256 = "1rn4cd1an6a9dfda884aqpcwcgq8dgydpqvb19nmagw4b70zlj4b";
36 };
37
38 outputs = [ "out" "dev" ];
39
40 buildInputs = [ gtk3 ];
41 nativeBuildInputs = [ pkg-config gobject-introspection ];
42 propagatedBuildInputs = [
43 cogl
44 pango
45 atk
46 json-glib
47 gobject-introspection
48 ] ++ lib.optionals (!stdenv.isDarwin) [
49 libX11
50 libGL
51 libGLU
52 libXext
53 libXfixes
54 libXdamage
55 libXcomposite
56 libXi
57 libxcb
58 libinput
59 libgudev
60 libxkbcommon
61 ];
62
63 configureFlags = [
64 "--enable-introspection" # needed by muffin AFAIK
65 ] ++ lib.optionals stdenv.isDarwin [
66 "--without-x"
67 "--enable-x11-backend=no"
68 "--enable-quartz-backend=yes"
69 ];
70
71 #doCheck = true; # no tests possible without a display
72
73 passthru = {
74 updateScript = gnome.updateScript {
75 packageName = pname;
76 versionPolicy = "odd-unstable";
77 };
78 };
79
80 meta = {
81 description = "Library for creating fast, dynamic graphical user interfaces";
82
83 longDescription =
84 '' Clutter is free software library for creating fast, compelling,
85 portable, and dynamic graphical user interfaces. It is a core part
86 of MeeGo, and is supported by the open source community. Its
87 development is sponsored by Intel.
88
89 Clutter uses OpenGL for rendering (and optionally OpenGL|ES for use
90 on mobile and embedded platforms), but wraps an easy to use,
91 efficient, flexible API around GL's complexity.
92
93 Clutter enforces no particular user interface style, but provides a
94 rich, generic foundation for higher-level toolkits tailored to
95 specific needs.
96 '';
97
98 license = lib.licenses.lgpl2Plus;
99 homepage = "http://www.clutter-project.org/";
100
101 maintainers = with lib.maintainers; [ ];
102 platforms = lib.platforms.unix;
103 };
104}