99 lines
2.3 KiB
Nix
99 lines
2.3 KiB
Nix
{
|
|
deployAndroidPackage,
|
|
lib,
|
|
stdenv,
|
|
package,
|
|
os,
|
|
arch,
|
|
autoPatchelfHook,
|
|
makeWrapper,
|
|
pkgs,
|
|
pkgsi686Linux,
|
|
postInstall,
|
|
meta,
|
|
}:
|
|
|
|
deployAndroidPackage {
|
|
inherit package os arch;
|
|
nativeBuildInputs = [ makeWrapper ] ++ lib.optionals (os == "linux") [ autoPatchelfHook ];
|
|
buildInputs =
|
|
lib.optionals (os == "linux") (
|
|
with pkgs;
|
|
[
|
|
glibc
|
|
libcxx
|
|
libGL
|
|
libpulseaudio
|
|
libtiff
|
|
libuuid
|
|
zlib
|
|
libbsd
|
|
ncurses5
|
|
libdrm
|
|
stdenv.cc.cc
|
|
expat
|
|
freetype
|
|
nss
|
|
nspr
|
|
alsa-lib
|
|
waylandpp.lib
|
|
]
|
|
)
|
|
++ (with pkgs.xorg; [
|
|
libX11
|
|
libXext
|
|
libXdamage
|
|
libXfixes
|
|
libxcb
|
|
libXcomposite
|
|
libXcursor
|
|
libXi
|
|
libXrender
|
|
libXtst
|
|
libICE
|
|
libSM
|
|
libxkbfile
|
|
libxshmfence
|
|
])
|
|
++ lib.optional (os == "linux" && stdenv.isx86_64) pkgsi686Linux.glibc;
|
|
patchInstructions =
|
|
(lib.optionalString (os == "linux") ''
|
|
addAutoPatchelfSearchPath $packageBaseDir/lib
|
|
addAutoPatchelfSearchPath $packageBaseDir/lib64
|
|
addAutoPatchelfSearchPath $packageBaseDir/lib64/qt/lib
|
|
# autoPatchelf is not detecting libuuid :(
|
|
addAutoPatchelfSearchPath ${pkgs.libuuid.out}/lib
|
|
|
|
# This library is linked against a version of libtiff that nixpkgs doesn't have
|
|
for file in $out/libexec/android-sdk/emulator/*/qt/plugins/imageformats/libqtiffAndroidEmu.so; do
|
|
patchelf --replace-needed libtiff.so.5 libtiff.so "$file" || true
|
|
done
|
|
|
|
autoPatchelf $out
|
|
|
|
# Wrap emulator so that it can load required libraries at runtime
|
|
wrapProgram $out/libexec/android-sdk/emulator/emulator \
|
|
--prefix LD_LIBRARY_PATH : ${
|
|
lib.makeLibraryPath [
|
|
pkgs.dbus
|
|
pkgs.systemd
|
|
]
|
|
} \
|
|
--set QT_XKB_CONFIG_ROOT ${pkgs.xkeyboard_config}/share/X11/xkb \
|
|
--set QTCOMPOSE ${pkgs.xorg.libX11.out}/share/X11/locale
|
|
'')
|
|
+ ''
|
|
mkdir -p $out/bin
|
|
cd $out/bin
|
|
find $out/libexec/android-sdk/emulator -type f -executable -mindepth 1 -maxdepth 1 | while read i; do
|
|
ln -s $i
|
|
done
|
|
|
|
cd $out/libexec/android-sdk
|
|
${postInstall}
|
|
'';
|
|
dontMoveLib64 = true;
|
|
|
|
inherit meta;
|
|
}
|