1{
2 lib,
3 stdenv,
4 fetchurl,
5 pkg-config,
6 meson,
7 ninja,
8 python3,
9 gtk3,
10 glibmm,
11 cairomm,
12 pangomm,
13 atkmm,
14 libepoxy,
15 gnome,
16 glib,
17 gdk-pixbuf,
18}:
19
20stdenv.mkDerivation rec {
21 pname = "gtkmm";
22 version = "3.24.10";
23
24 src = fetchurl {
25 url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
26 sha256 = "erfiJmgIcW4mw5kkrOH7RtqGwX7znZiWJMQjFLMrWnY=";
27 };
28
29 outputs = [
30 "out"
31 "dev"
32 ];
33
34 nativeBuildInputs = [
35 pkg-config
36 meson
37 ninja
38 python3
39 glib
40 gdk-pixbuf # for gdk-pixbuf-pixdata
41 ];
42 buildInputs = [ libepoxy ];
43
44 propagatedBuildInputs = [
45 glibmm
46 gtk3
47 atkmm
48 cairomm
49 pangomm
50 ];
51
52 # https://bugzilla.gnome.org/show_bug.cgi?id=764521
53 doCheck = false;
54
55 passthru = {
56 updateScript = gnome.updateScript {
57 packageName = pname;
58 attrPath = "${pname}3";
59 versionPolicy = "odd-unstable";
60 freeze = true;
61 };
62 };
63
64 meta = with lib; {
65 description = "C++ interface to the GTK graphical user interface library";
66
67 longDescription = ''
68 gtkmm is the official C++ interface for the popular GUI library
69 GTK. Highlights include typesafe callbacks, and a
70 comprehensive set of widgets that are easily extensible via
71 inheritance. You can create user interfaces either in code or
72 with the Glade User Interface designer, using libglademm.
73 There's extensive documentation, including API reference and a
74 tutorial.
75 '';
76
77 homepage = "https://gtkmm.gnome.org/";
78
79 license = licenses.lgpl2Plus;
80
81 maintainers = with maintainers; [ raskin ];
82 platforms = platforms.unix;
83 };
84}