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 | 50 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/libraries/gtkmm/4.x.nix | 91 |
3 files changed, 183 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..cf26e22da5bc --- /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 { + name = "gtkmm-${minVer}.5"; + minVer = "2.24"; + + src = fetchurl { + url = "mirror://gnome/sources/gtkmm/${minVer}/${name}.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..2e43e58db42d --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gtkmm/3.x.nix @@ -0,0 +1,50 @@ +{ lib, stdenv, fetchurl, pkg-config, meson, ninja, python3, gtk3, glibmm, cairomm, pangomm, atkmm, epoxy, gnome }: + +stdenv.mkDerivation rec { + pname = "gtkmm"; + version = "3.24.5"; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + sha256 = "1ri2msp3cmzi6r65ghwb8gfavfaxv0axpwi3q60nm7v8hvg36qw5"; + }; + + outputs = [ "out" "dev" ]; + + nativeBuildInputs = [ pkg-config meson ninja python3 ]; + buildInputs = [ epoxy ]; + + 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"; + }; + }; + + 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..0a654d9518dc --- /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 +, epoxy +, gnome +, makeFontsConf +, xvfb-run +}: + +stdenv.mkDerivation rec { + pname = "gtkmm"; + version = "4.2.0"; + + outputs = [ "out" "dev" ]; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + sha256 = "12x9j82y37r4v0ngs22rzp4wmw7k2bbb9d3bymcczzz7y8w4q328"; + }; + + nativeBuildInputs = [ + pkg-config + meson + ninja + python3 + ]; + + buildInputs = [ + epoxy + ]; + + propagatedBuildInputs = [ + glibmm_2_68 + gtk4 + cairomm_1_16 + pangomm_2_48 + ]; + + checkInputs = [ + xvfb-run + ]; + + # 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 { + 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; + }; +} |