diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/gtk/3.x.nix')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/gtk/3.x.nix | 43 |
1 files changed, 30 insertions, 13 deletions
diff --git a/nixpkgs/pkgs/development/libraries/gtk/3.x.nix b/nixpkgs/pkgs/development/libraries/gtk/3.x.nix index c06aa9469937..33e4c4464102 100644 --- a/nixpkgs/pkgs/development/libraries/gtk/3.x.nix +++ b/nixpkgs/pkgs/development/libraries/gtk/3.x.nix @@ -8,6 +8,7 @@ , docbook_xml_dtd_43 , gtk-doc , meson +, mesonEmulatorHook , ninja , python3 , makeWrapper @@ -21,6 +22,8 @@ , atk , at-spi2-atk , gobject-introspection +, buildPackages +, withIntrospection ? stdenv.hostPlatform.emulatorAvailable buildPackages , fribidi , xorg , libepoxy @@ -39,13 +42,13 @@ , wayland-protocols , xineramaSupport ? stdenv.isLinux , cupsSupport ? stdenv.isLinux -, withGtkDoc ? stdenv.isLinux && (stdenv.buildPlatform == stdenv.hostPlatform) , cups , AppKit , Cocoa , QuartzCore , broadwaySupport ? true , wayland-scanner +, testers }: let @@ -58,11 +61,11 @@ let in -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "gtk+3"; - version = "3.24.34"; + version = "3.24.37"; - outputs = [ "out" "dev" ] ++ lib.optional withGtkDoc "devdoc"; + outputs = [ "out" "dev" ] ++ lib.optional withIntrospection "devdoc"; outputBin = "dev"; setupHooks = [ @@ -70,9 +73,11 @@ stdenv.mkDerivation rec { gtkCleanImmodulesCache ]; - src = fetchurl { + src = let + inherit (finalAttrs) version; + in fetchurl { url = "mirror://gnome/sources/gtk+/${lib.versions.majorMinor version}/gtk+-${version}.tar.xz"; - sha256 = "sha256-28afkN3IIbjRRB8AN03B2kMjour6kHjmHtvl7u+oUuw="; + sha256 = "sha256-Z0XwtMBTeUFR/Q8OJHSwd8zP9fg+ndG/PTn+n+X7f1c="; }; patches = [ @@ -91,7 +96,6 @@ stdenv.mkDerivation rec { ]; nativeBuildInputs = [ gettext - gobject-introspection makeWrapper meson ninja @@ -99,18 +103,20 @@ stdenv.mkDerivation rec { python3 sassc gdk-pixbuf - ] ++ setupHooks ++ lib.optionals withGtkDoc [ + ] ++ finalAttrs.setupHooks ++ lib.optionals withIntrospection [ + gobject-introspection docbook_xml_dtd_43 docbook-xsl-nons gtk-doc # For xmllint libxml2 + ] ++ lib.optionals (withIntrospection && !stdenv.buildPlatform.canExecute stdenv.hostPlatform) [ + mesonEmulatorHook ] ++ lib.optionals waylandSupport [ wayland-scanner ]; buildInputs = [ - gobject-introspection libxkbcommon (libepoxy.override { inherit x11Support; }) isocodes @@ -134,6 +140,8 @@ stdenv.mkDerivation rec { libSM libXcomposite libXcursor + libXdamage + libXfixes libXi libXrandr libXrender @@ -153,12 +161,13 @@ stdenv.mkDerivation rec { ]; mesonFlags = [ - "-Dgtk_doc=${lib.boolToString withGtkDoc}" + "-Dgtk_doc=${lib.boolToString withIntrospection}" "-Dtests=false" "-Dtracker3=${lib.boolToString trackerSupport}" "-Dbroadway_backend=${lib.boolToString broadwaySupport}" "-Dx11_backend=${lib.boolToString x11Support}" "-Dquartz_backend=${lib.boolToString (stdenv.isDarwin && !x11Support)}" + "-Dintrospection=${lib.boolToString withIntrospection}" ]; doCheck = false; # needs X11 @@ -167,7 +176,7 @@ stdenv.mkDerivation rec { # These are the defines that'd you'd get with --enable-debug=minimum (default). # See: https://developer.gnome.org/gtk3/stable/gtk-building.html#extra-configuration-options - NIX_CFLAGS_COMPILE = "-DG_ENABLE_DEBUG -DG_DISABLE_CAST_CHECKS"; + env.NIX_CFLAGS_COMPILE = "-DG_ENABLE_DEBUG -DG_DISABLE_CAST_CHECKS"; postPatch = '' # See https://github.com/NixOS/nixpkgs/issues/132259 @@ -211,7 +220,7 @@ stdenv.mkDerivation rec { for program in ''${demos[@]}; do wrapProgram $dev/bin/$program \ - --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH:$out/share/gsettings-schemas/${pname}-${version}" + --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH:$out/share/gsettings-schemas/${finalAttrs.pname}-${finalAttrs.version}" done '' + lib.optionalString stdenv.isDarwin '' # a comment created a cycle between outputs @@ -224,6 +233,7 @@ stdenv.mkDerivation rec { attrPath = "gtk3"; freeze = true; }; + tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; }; meta = with lib; { @@ -241,7 +251,14 @@ stdenv.mkDerivation rec { homepage = "https://www.gtk.org/"; license = licenses.lgpl2Plus; maintainers = with maintainers; [ raskin ] ++ teams.gnome.members; + pkgConfigModules = [ + "gdk-3.0" + "gtk+-3.0" + ] ++ lib.optionals x11Support [ + "gdk-x11-3.0" + "gtk+-x11-3.0" + ]; platforms = platforms.all; changelog = "https://gitlab.gnome.org/GNOME/gtk/-/raw/${version}/NEWS"; }; -} +}) |