adoptopenjdk-bin: add support for GTK+ Look and Feel

This commit is contained in:
taku0 2020-12-20 15:22:31 +09:00
parent 1afd76b098
commit 714eca6967

View file

@ -4,16 +4,31 @@ sourcePerArch:
, lib , lib
, fetchurl , fetchurl
, autoPatchelfHook , autoPatchelfHook
, makeWrapper
# minimum dependencies
, alsaLib , alsaLib
, freetype
, fontconfig , fontconfig
, zlib , freetype
, xorg
, libffi , libffi
, xorg
, zlib
# runtime dependencies
, cups
# runtime dependencies for GTK+ Look and Feel
, gtkSupport ? true
, cairo
, glib
, gtk3
}: }:
let let
cpuName = stdenv.hostPlatform.parsed.cpu.name; cpuName = stdenv.hostPlatform.parsed.cpu.name;
runtimeDependencies = [
cups
] ++ lib.optionals gtkSupport [
cairo glib gtk3
];
runtimeLibraryPath = lib.makeLibraryPath runtimeDependencies;
in in
let result = stdenv.mkDerivation rec { let result = stdenv.mkDerivation rec {
@ -28,11 +43,19 @@ let result = stdenv.mkDerivation rec {
}; };
buildInputs = [ buildInputs = [
alsaLib freetype fontconfig zlib xorg.libX11 xorg.libXext xorg.libXtst alsaLib # libasound.so wanted by lib/libjsound.so
xorg.libXi xorg.libXrender stdenv.cc.cc.lib fontconfig
freetype
stdenv.cc.cc.lib # libstdc++.so.6
xorg.libX11
xorg.libXext
xorg.libXi
xorg.libXrender
xorg.libXtst
zlib
] ++ lib.optional stdenv.isAarch32 libffi; ] ++ lib.optional stdenv.isAarch32 libffi;
nativeBuildInputs = [ autoPatchelfHook ]; nativeBuildInputs = [ autoPatchelfHook makeWrapper ];
# See: https://github.com/NixOS/patchelf/issues/10 # See: https://github.com/NixOS/patchelf/issues/10
dontStrip = 1; dontStrip = 1;
@ -57,6 +80,13 @@ let result = stdenv.mkDerivation rec {
cat <<EOF >> "$out/nix-support/setup-hook" cat <<EOF >> "$out/nix-support/setup-hook"
if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi
EOF EOF
# We cannot use -exec since wrapProgram is a function but not a command.
for bin in $( find "$out" -executable -type f ); do
if patchelf --print-interpreter "$bin" &> /dev/null; then
wrapProgram "$bin" --prefix LD_LIBRARY_PATH : "${runtimeLibraryPath}"
fi
done
''; '';
preFixup = '' preFixup = ''