lol
1{ stdenv, fetchurl, pkgconfig, gettext, glib, atk, pango, cairo, perl, xlibs
2, gdk_pixbuf, libintlOrEmpty, x11
3, xineramaSupport ? stdenv.isLinux
4, cupsSupport ? true, cups ? null
5}:
6
7assert xineramaSupport -> xlibs.libXinerama != null;
8assert cupsSupport -> cups != null;
9
10stdenv.mkDerivation rec {
11 name = "gtk+-2.24.28";
12
13 src = fetchurl {
14 url = "mirror://gnome/sources/gtk+/2.24/${name}.tar.xz";
15 sha256 = "0mj6xn40py9r9lvzg633fal81xfwfm89d9mvz7jk4lmwk0g49imj";
16 };
17
18 enableParallelBuilding = true;
19
20 NIX_CFLAGS_COMPILE = stdenv.lib.optionalString (libintlOrEmpty != []) "-lintl";
21
22 nativeBuildInputs = [ perl pkgconfig gettext ];
23
24 propagatedBuildInputs = with xlibs; with stdenv.lib;
25 [ glib cairo pango gdk_pixbuf atk ]
26 ++ optionals (stdenv.isLinux || stdenv.isDarwin) [
27 libXrandr libXrender libXcomposite libXi libXcursor
28 ]
29 ++ optionals stdenv.isDarwin [ x11 libXdamage ]
30 ++ libintlOrEmpty
31 ++ optional xineramaSupport libXinerama
32 ++ optionals cupsSupport [ cups ];
33
34 configureFlags = if stdenv.isDarwin
35 then "--disable-glibtest --disable-introspection --disable-visibility"
36 else "--with-xinput=yes";
37
38 postInstall = "rm -rf $out/share/gtk-doc";
39
40 passthru = {
41 gtkExeEnvPostBuild = ''
42 rm $out/lib/gtk-2.0/2.10.0/immodules.cache
43 $out/bin/gtk-query-immodules-2.0 $out/lib/gtk-2.0/2.10.0/immodules/*.so > $out/lib/gtk-2.0/2.10.0/immodules.cache
44 ''; # workaround for bug of nix-mode for Emacs */ '';
45 };
46
47 meta = with stdenv.lib; {
48 description = "A multi-platform toolkit for creating graphical user interfaces";
49 homepage = http://www.gtk.org/;
50 license = licenses.lgpl2Plus;
51 maintainers = with maintainers; [ lovek323 raskin ];
52 platforms = platforms.all;
53
54 longDescription = ''
55 GTK+ is a highly usable, feature rich toolkit for creating
56 graphical user interfaces which boasts cross platform
57 compatibility and an easy to use API. GTK+ it is written in C,
58 but has bindings to many other popular programming languages
59 such as C++, Python and C# among others. GTK+ is licensed
60 under the GNU LGPL 2.1 allowing development of both free and
61 proprietary software with GTK+ without any license fees or
62 royalties.
63 '';
64 };
65}