diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/gtkmm')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/gtkmm/2.x.nix | 42 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/libraries/gtkmm/3.x.nix | 58 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/libraries/gtkmm/4.x.nix | 91 |
3 files changed, 191 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/gtkmm/2.x.nix b/nixpkgs/pkgs/development/libraries/gtkmm/2.x.nix new file mode 100644 index 000000000000..284ee83c2d4f --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gtkmm/2.x.nix @@ -0,0 +1,42 @@ +{ lib, stdenv, fetchurl, pkg-config, gtk2, glibmm, cairomm, pangomm, atkmm }: + +stdenv.mkDerivation rec { + pname = "gtkmm"; + version = "2.24.5"; + + src = fetchurl { + url = "mirror://gnome/sources/gtkmm/${lib.versions.majorMinor version}/gtkmm-${version}.tar.xz"; + sha256 = "0680a53b7bf90b4e4bf444d1d89e6df41c777e0bacc96e9c09fc4dd2f5fe6b72"; + }; + + outputs = [ "out" "dev" ]; + + nativeBuildInputs = [ pkg-config ]; + + propagatedBuildInputs = [ glibmm gtk2 atkmm cairomm pangomm ]; + + doCheck = true; + + enableParallelBuilding = true; + + meta = { + 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 = lib.licenses.lgpl2Plus; + + maintainers = with lib.maintainers; [ raskin ]; + platforms = lib.platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/development/libraries/gtkmm/3.x.nix b/nixpkgs/pkgs/development/libraries/gtkmm/3.x.nix new file mode 100644 index 000000000000..1d3f15ba9871 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gtkmm/3.x.nix @@ -0,0 +1,58 @@ +{ lib, stdenv, fetchurl, pkg-config, meson, ninja, python3, gtk3, glibmm, cairomm, pangomm, atkmm, libepoxy, gnome, glib, gdk-pixbuf }: + +stdenv.mkDerivation rec { + pname = "gtkmm"; + version = "3.24.8"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + sha256 = "0pQMZJIuW5WFVLI9TEHRg56p5D4NLls4Gc+0aCSgmMQ="; + }; + + outputs = [ "out" "dev" ]; + + nativeBuildInputs = [ + pkg-config + meson + ninja + python3 + glib + gdk-pixbuf # for gdk-pixbuf-pixdata + ]; + buildInputs = [ libepoxy ]; + + propagatedBuildInputs = [ glibmm gtk3 atkmm cairomm pangomm ]; + + # https://bugzilla.gnome.org/show_bug.cgi?id=764521 + doCheck = false; + + passthru = { + updateScript = gnome.updateScript { + packageName = pname; + attrPath = "${pname}3"; + versionPolicy = "odd-unstable"; + freeze = true; + }; + }; + + 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 = with maintainers; [ raskin ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/development/libraries/gtkmm/4.x.nix b/nixpkgs/pkgs/development/libraries/gtkmm/4.x.nix new file mode 100644 index 000000000000..e1ed8307a39d --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gtkmm/4.x.nix @@ -0,0 +1,91 @@ +{ stdenv +, lib +, fetchurl +, pkg-config +, meson +, ninja +, python3 +, gtk4 +, glibmm_2_68 +, cairomm_1_16 +, pangomm_2_48 +, libepoxy +, gnome +, makeFontsConf +, xvfb-run +}: + +stdenv.mkDerivation rec { + pname = "gtkmm"; + version = "4.10.0"; + + outputs = [ "out" "dev" ]; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + sha256 = "4bEJdxVX7MU8upFagLbt6Cf/29AEnGL9+L1/p5r8xus="; + }; + + nativeBuildInputs = [ + pkg-config + meson + ninja + python3 + ]; + + buildInputs = [ + libepoxy + ]; + + propagatedBuildInputs = [ + glibmm_2_68 + gtk4 + cairomm_1_16 + pangomm_2_48 + ]; + + nativeCheckInputs = lib.optionals (!stdenv.isDarwin)[ + xvfb-run + ]; + + # Tests require fontconfig. + FONTCONFIG_FILE = makeFontsConf { + fontDirectories = [ ]; + }; + + doCheck = true; + + checkPhase = '' + runHook preCheck + + ${lib.optionalString (!stdenv.isDarwin) "xvfb-run -s '-screen 0 800x600x24'"} \ + meson test --print-errorlogs + + runHook postCheck + ''; + + passthru = { + updateScript = gnome.updateScript { + 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 ]); + platforms = platforms.unix; + }; +} |