gtk3: Clean up
- Reorder the expression according to https://github.com/jtojnar/nixpkgs-hammering/blob/master/explanations/attribute-ordering.md - Do not use `with lib;` at top-level. - Use lib.optionals instead of lib.optional for cleaner style. - Replace docbook_xsl alias with docbook-xsl-nons. This will make it more in line with the incoming GTK 4 package.
This commit is contained in:
parent
1a495d604f
commit
04fce19888
@ -3,7 +3,7 @@
|
|||||||
, fetchpatch
|
, fetchpatch
|
||||||
, pkg-config
|
, pkg-config
|
||||||
, gettext
|
, gettext
|
||||||
, docbook_xsl
|
, docbook-xsl-nons
|
||||||
, docbook_xml_dtd_43
|
, docbook_xml_dtd_43
|
||||||
, gtk-doc
|
, gtk-doc
|
||||||
, meson
|
, meson
|
||||||
@ -48,13 +48,11 @@
|
|||||||
|
|
||||||
assert cupsSupport -> cups != null;
|
assert cupsSupport -> cups != null;
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "gtk+3";
|
pname = "gtk+3";
|
||||||
version = "3.24.24";
|
version = "3.24.24";
|
||||||
|
|
||||||
outputs = [ "out" "dev" ] ++ optional withGtkDoc "devdoc";
|
outputs = [ "out" "dev" ] ++ lib.optional withGtkDoc "devdoc";
|
||||||
outputBin = "dev";
|
outputBin = "dev";
|
||||||
|
|
||||||
setupHooks = [
|
setupHooks = [
|
||||||
@ -69,12 +67,13 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
./patches/3.0-immodules.cache.patch
|
./patches/3.0-immodules.cache.patch
|
||||||
|
|
||||||
(fetchpatch {
|
(fetchpatch {
|
||||||
name = "Xft-setting-fallback-compute-DPI-properly.patch";
|
name = "Xft-setting-fallback-compute-DPI-properly.patch";
|
||||||
url = "https://bug757142.bugzilla-attachments.gnome.org/attachment.cgi?id=344123";
|
url = "https://bug757142.bugzilla-attachments.gnome.org/attachment.cgi?id=344123";
|
||||||
sha256 = "0g6fhqcv8spfy3mfmxpyji93k8d4p4q4fz1v9a1c1cgcwkz41d7p";
|
sha256 = "0g6fhqcv8spfy3mfmxpyji93k8d4p4q4fz1v9a1c1cgcwkz41d7p";
|
||||||
})
|
})
|
||||||
] ++ optionals stdenv.isDarwin [
|
] ++ lib.optionals stdenv.isDarwin [
|
||||||
# X11 module requires <gio/gdesktopappinfo.h> which is not installed on Darwin
|
# X11 module requires <gio/gdesktopappinfo.h> which is not installed on Darwin
|
||||||
# let’s drop that dependency in similar way to how other parts of the library do it
|
# let’s drop that dependency in similar way to how other parts of the library do it
|
||||||
# e.g. https://gitlab.gnome.org/GNOME/gtk/blob/3.24.4/gtk/gtk-launch.c#L31-33
|
# e.g. https://gitlab.gnome.org/GNOME/gtk/blob/3.24.4/gtk/gtk-launch.c#L31-33
|
||||||
@ -82,15 +81,76 @@ stdenv.mkDerivation rec {
|
|||||||
./patches/3.0-darwin-x11.patch
|
./patches/3.0-darwin-x11.patch
|
||||||
];
|
];
|
||||||
|
|
||||||
separateDebugInfo = stdenv.isLinux;
|
nativeBuildInputs = [
|
||||||
|
gettext
|
||||||
|
gobject-introspection
|
||||||
|
makeWrapper
|
||||||
|
meson
|
||||||
|
ninja
|
||||||
|
pkg-config
|
||||||
|
python3
|
||||||
|
sassc
|
||||||
|
] ++ setupHooks ++ lib.optionals withGtkDoc [
|
||||||
|
docbook_xml_dtd_43
|
||||||
|
docbook-xsl-nons
|
||||||
|
gtk-doc
|
||||||
|
# For xmllint
|
||||||
|
libxml2
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
libxkbcommon
|
||||||
|
epoxy
|
||||||
|
json-glib
|
||||||
|
isocodes
|
||||||
|
] ++ lib.optionals stdenv.isDarwin [
|
||||||
|
AppKit
|
||||||
|
] ++ lib.optionals trackerSupport [
|
||||||
|
tracker
|
||||||
|
];
|
||||||
|
#TODO: colord?
|
||||||
|
|
||||||
|
propagatedBuildInputs = with xorg; [
|
||||||
|
at-spi2-atk
|
||||||
|
atk
|
||||||
|
cairo
|
||||||
|
expat
|
||||||
|
fribidi
|
||||||
|
gdk-pixbuf
|
||||||
|
glib
|
||||||
|
gsettings-desktop-schemas
|
||||||
|
libICE
|
||||||
|
libSM
|
||||||
|
libXcomposite
|
||||||
|
libXcursor
|
||||||
|
libXi
|
||||||
|
libXrandr
|
||||||
|
libXrender
|
||||||
|
pango
|
||||||
|
] ++ lib.optionals stdenv.isDarwin [
|
||||||
|
# explicitly propagated, always needed
|
||||||
|
Cocoa
|
||||||
|
] ++ lib.optionals waylandSupport [
|
||||||
|
mesa
|
||||||
|
wayland
|
||||||
|
wayland-protocols
|
||||||
|
] ++ lib.optionals xineramaSupport [
|
||||||
|
libXinerama
|
||||||
|
] ++ lib.optionals cupsSupport [
|
||||||
|
cups
|
||||||
|
];
|
||||||
|
|
||||||
mesonFlags = [
|
mesonFlags = [
|
||||||
"-Dgtk_doc=${boolToString withGtkDoc}"
|
"-Dgtk_doc=${lib.boolToString withGtkDoc}"
|
||||||
"-Dtests=false"
|
"-Dtests=false"
|
||||||
"-Dtracker3=${boolToString trackerSupport}"
|
"-Dtracker3=${lib.boolToString trackerSupport}"
|
||||||
"-Dbroadway_backend=${boolToString broadwaySupport}"
|
"-Dbroadway_backend=${lib.boolToString broadwaySupport}"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
doCheck = false; # needs X11
|
||||||
|
|
||||||
|
separateDebugInfo = stdenv.isLinux;
|
||||||
|
|
||||||
# These are the defines that'd you'd get with --enable-debug=minimum (default).
|
# 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
|
# See: https://developer.gnome.org/gtk3/stable/gtk-building.html#extra-configuration-options
|
||||||
NIX_CFLAGS_COMPILE = "-DG_ENABLE_DEBUG -DG_DISABLE_CAST_CHECKS";
|
NIX_CFLAGS_COMPILE = "-DG_ENABLE_DEBUG -DG_DISABLE_CAST_CHECKS";
|
||||||
@ -111,61 +171,7 @@ stdenv.mkDerivation rec {
|
|||||||
patchShebangs ''${files[@]}
|
patchShebangs ''${files[@]}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
nativeBuildInputs = [
|
postInstall = lib.optionalString (!stdenv.isDarwin) ''
|
||||||
gettext
|
|
||||||
gobject-introspection
|
|
||||||
makeWrapper
|
|
||||||
meson
|
|
||||||
ninja
|
|
||||||
pkg-config
|
|
||||||
python3
|
|
||||||
sassc
|
|
||||||
] ++ setupHooks ++ optionals withGtkDoc [
|
|
||||||
docbook_xml_dtd_43
|
|
||||||
docbook_xsl
|
|
||||||
gtk-doc
|
|
||||||
# For xmllint
|
|
||||||
libxml2
|
|
||||||
];
|
|
||||||
|
|
||||||
buildInputs = [
|
|
||||||
libxkbcommon
|
|
||||||
epoxy
|
|
||||||
json-glib
|
|
||||||
isocodes
|
|
||||||
]
|
|
||||||
++ optional stdenv.isDarwin AppKit
|
|
||||||
++ optional trackerSupport tracker
|
|
||||||
;
|
|
||||||
|
|
||||||
propagatedBuildInputs = with xorg; [
|
|
||||||
at-spi2-atk
|
|
||||||
atk
|
|
||||||
cairo
|
|
||||||
expat
|
|
||||||
fribidi
|
|
||||||
gdk-pixbuf
|
|
||||||
glib
|
|
||||||
gsettings-desktop-schemas
|
|
||||||
libICE
|
|
||||||
libSM
|
|
||||||
libXcomposite
|
|
||||||
libXcursor
|
|
||||||
libXi
|
|
||||||
libXrandr
|
|
||||||
libXrender
|
|
||||||
pango
|
|
||||||
]
|
|
||||||
++ optional stdenv.isDarwin Cocoa # explicitly propagated, always needed
|
|
||||||
++ optionals waylandSupport [ mesa wayland wayland-protocols ]
|
|
||||||
++ optional xineramaSupport libXinerama
|
|
||||||
++ optional cupsSupport cups
|
|
||||||
;
|
|
||||||
#TODO: colord?
|
|
||||||
|
|
||||||
doCheck = false; # needs X11
|
|
||||||
|
|
||||||
postInstall = optionalString (!stdenv.isDarwin) ''
|
|
||||||
# The updater is needed for nixos env and it's tiny.
|
# The updater is needed for nixos env and it's tiny.
|
||||||
moveToOutput bin/gtk-update-icon-cache "$out"
|
moveToOutput bin/gtk-update-icon-cache "$out"
|
||||||
# Launcher
|
# Launcher
|
||||||
@ -178,7 +184,7 @@ stdenv.mkDerivation rec {
|
|||||||
'';
|
'';
|
||||||
|
|
||||||
# Wrap demos
|
# Wrap demos
|
||||||
postFixup = optionalString (!stdenv.isDarwin) ''
|
postFixup = lib.optionalString (!stdenv.isDarwin) ''
|
||||||
demos=(gtk3-demo gtk3-demo-application gtk3-icon-browser gtk3-widget-factory)
|
demos=(gtk3-demo gtk3-demo-application gtk3-icon-browser gtk3-widget-factory)
|
||||||
|
|
||||||
for program in ''${demos[@]}; do
|
for program in ''${demos[@]}; do
|
||||||
@ -194,7 +200,7 @@ stdenv.mkDerivation rec {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = {
|
meta = with lib; {
|
||||||
description = "A multi-platform toolkit for creating graphical user interfaces";
|
description = "A multi-platform toolkit for creating graphical user interfaces";
|
||||||
longDescription = ''
|
longDescription = ''
|
||||||
GTK is a highly usable, feature rich toolkit for creating
|
GTK is a highly usable, feature rich toolkit for creating
|
||||||
|
Loading…
Reference in New Issue
Block a user