python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / pkgs / development / libraries / gtkmm / 4.x.nix
blobb12ff45a3a19532f156c133f282b5af8be238941
1 { stdenv
2 , lib
3 , fetchurl
4 , pkg-config
5 , meson
6 , ninja
7 , python3
8 , gtk4
9 , glibmm_2_68
10 , cairomm_1_16
11 , pangomm_2_48
12 , libepoxy
13 , gnome
14 , makeFontsConf
15 , xvfb-run
18 stdenv.mkDerivation rec {
19   pname = "gtkmm";
20   version = "4.8.0";
22   outputs = [ "out" "dev" ];
24   src = fetchurl {
25     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
26     sha256 = "yCeG1G4rBzRrY5fKfxkp2VL0ki+lyds97ghJi5oTbPU=";
27   };
29   nativeBuildInputs = [
30     pkg-config
31     meson
32     ninja
33     python3
34   ];
36   buildInputs = [
37     libepoxy
38   ];
40   propagatedBuildInputs = [
41     glibmm_2_68
42     gtk4
43     cairomm_1_16
44     pangomm_2_48
45   ];
47   checkInputs = lib.optionals (!stdenv.isDarwin)[
48     xvfb-run
49   ];
51   # Tests require fontconfig.
52   FONTCONFIG_FILE = makeFontsConf {
53     fontDirectories = [ ];
54   };
56   doCheck = true;
58   checkPhase = ''
59     runHook preCheck
61     ${lib.optionalString (!stdenv.isDarwin) "xvfb-run -s '-screen 0 800x600x24'"} \
62       meson test --print-errorlogs
64     runHook postCheck
65   '';
67   passthru = {
68     updateScript = gnome.updateScript {
69       packageName = pname;
70       attrPath = "${pname}4";
71       versionPolicy = "odd-unstable";
72     };
73   };
75   meta = with lib; {
76     description = "C++ interface to the GTK graphical user interface library";
77     longDescription = ''
78       gtkmm is the official C++ interface for the popular GUI library
79       GTK.  Highlights include typesafe callbacks, and a
80       comprehensive set of widgets that are easily extensible via
81       inheritance.  You can create user interfaces either in code or
82       with the Glade User Interface designer, using libglademm.
83       There's extensive documentation, including API reference and a
84       tutorial.
85     '';
86     homepage = "https://gtkmm.org/";
87     license = licenses.lgpl2Plus;
88     maintainers = teams.gnome.members ++ (with maintainers; [ raskin ]);
89     platforms = platforms.unix;
90   };