nixpkgs/pkgs/development/libraries/gtkmm/4.x.nix

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

92 lines
1.8 KiB
Nix
Raw Normal View History

2021-05-06 18:29:33 +02:00
{ stdenv
, lib
, fetchurl
, pkg-config
, meson
, ninja
, python3
, gtk4
, glibmm_2_68
, cairomm_1_16
, pangomm_2_48
, libepoxy
, gnome
2021-05-06 18:29:33 +02:00
, makeFontsConf
2021-05-08 15:45:03 +02:00
, xvfb-run
2021-05-06 18:29:33 +02:00
}:
stdenv.mkDerivation rec {
pname = "gtkmm";
2022-02-10 07:52:47 +01:00
version = "4.6.0";
2021-05-06 18:29:33 +02:00
outputs = [ "out" "dev" ];
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
2022-02-10 07:52:47 +01:00
sha256 = "E1OgkJPLVx71rAXZPSALrxMq1gS19JQHd2VuFQWBTB8=";
2021-05-06 18:29:33 +02:00
};
nativeBuildInputs = [
pkg-config
meson
ninja
python3
];
buildInputs = [
libepoxy
2021-05-06 18:29:33 +02:00
];
propagatedBuildInputs = [
glibmm_2_68
gtk4
cairomm_1_16
pangomm_2_48
];
checkInputs = [
2021-05-08 15:45:03 +02:00
xvfb-run
2021-05-06 18:29:33 +02:00
];
# Tests require fontconfig.
FONTCONFIG_FILE = makeFontsConf {
fontDirectories = [ ];
};
doCheck = true;
checkPhase = ''
runHook preCheck
xvfb-run -s '-screen 0 800x600x24' \
meson test --print-errorlogs
runHook postCheck
'';
passthru = {
updateScript = gnome.updateScript {
2021-05-06 18:29:33 +02:00
packageName = pname;
attrPath = "${pname}4";
versionPolicy = "odd-unstable";
};
};
meta = with lib; {
description = "C++ interface to the GTK graphical user interface library";
longDescription = ''
gtkmm is the official C++ interface for the popular GUI library
GTK. Highlights include typesafe callbacks, and a
comprehensive set of widgets that are easily extensible via
inheritance. You can create user interfaces either in code or
with the Glade User Interface designer, using libglademm.
There's extensive documentation, including API reference and a
tutorial.
'';
homepage = "https://gtkmm.org/";
license = licenses.lgpl2Plus;
maintainers = teams.gnome.members ++ (with maintainers; [ raskin ]);
2021-05-06 18:29:33 +02:00
platforms = platforms.unix;
};
}