about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/mobile/androidenv/ndk-bundle/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/mobile/androidenv/ndk-bundle/default.nix')
-rw-r--r--nixpkgs/pkgs/development/mobile/androidenv/ndk-bundle/default.nix32
1 files changed, 17 insertions, 15 deletions
diff --git a/nixpkgs/pkgs/development/mobile/androidenv/ndk-bundle/default.nix b/nixpkgs/pkgs/development/mobile/androidenv/ndk-bundle/default.nix
index ca305e0398d5..f74b949a7b3c 100644
--- a/nixpkgs/pkgs/development/mobile/androidenv/ndk-bundle/default.nix
+++ b/nixpkgs/pkgs/development/mobile/androidenv/ndk-bundle/default.nix
@@ -9,14 +9,14 @@ let
 in
 deployAndroidPackage {
   inherit package os;
-  buildInputs = [ autoPatchelfHook makeWrapper pkgs.python2 ]
-    ++ lib.optional (os == "linux") [ pkgs.glibc pkgs.stdenv.cc.cc pkgs.ncurses5 pkgs.zlib pkgs.libcxx.out ];
+  nativeBuildInputs = [ autoPatchelfHook makeWrapper ];
+  buildInputs = lib.optional (os == "linux") [ pkgs.glibc pkgs.stdenv.cc.cc pkgs.python2 pkgs.ncurses5 pkgs.zlib pkgs.libcxx.out pkgs.libxml2 ];
   patchInstructions = lib.optionalString (os == "linux") (''
     patchShebangs .
 
   '' + lib.optionalString (builtins.compareVersions (lib.getVersion package) "21" > 0) ''
     patch -p1 \
-      --no-backup-if-mismatch < ${./make_standalone_toolchain.py_18.patch}
+      --no-backup-if-mismatch < ${./make_standalone_toolchain.py_18.patch} || true
     wrapProgram $(pwd)/build/tools/make_standalone_toolchain.py --prefix PATH : "${runtime_paths}"
   '' + ''
 
@@ -24,33 +24,35 @@ deployAndroidPackage {
     rm -rf docs tests
 
     # Patch the executables of the toolchains, but not the libraries -- they are needed for crosscompiling
+    if [ -d $out/libexec/android-sdk/ndk-bundle/toolchains/renderscript/prebuilt/linux-x86_64/lib64 ]; then
+        addAutoPatchelfSearchPath $out/libexec/android-sdk/ndk-bundle/toolchains/renderscript/prebuilt/linux-x86_64/lib64
+    fi
 
-    addAutoPatchelfSearchPath $out/libexec/android-sdk/ndk-bundle/toolchains/renderscript/prebuilt/linux-x86_64/lib64
-    find toolchains -type d -name bin | while read dir
-    do
+    if [ -d $out/libexec/android-sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/lib64 ]; then
+        addAutoPatchelfSearchPath $out/libexec/android-sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/lib64
+    fi
+
+    find toolchains -type d -name bin -or -name lib64 | while read dir; do
         autoPatchelf "$dir"
     done
 
     # fix ineffective PROGDIR / MYNDKDIR determination
-    for i in ndk-build
-    do
-        sed -i -e 's|^PROGDIR=`dirname $0`|PROGDIR=`dirname $(readlink -f $(which $0))`|' $i
+    for progname in ndk-build; do
+        sed -i -e 's|^PROGDIR=`dirname $0`|PROGDIR=`dirname $(readlink -f $(which $0))`|' $progname
     done
 
     # Patch executables
     autoPatchelf prebuilt/linux-x86_64
 
     # wrap
-    for i in ndk-build
-    do
-        wrapProgram "$(pwd)/$i" --prefix PATH : "${runtime_paths}"
+    for progname in ndk-build; do
+        wrapProgram "$(pwd)/$progname" --prefix PATH : "${runtime_paths}"
     done
 
     # make some executables available in PATH
     mkdir -p $out/bin
-    for i in ndk-build
-    do
-        ln -sf ../libexec/android-sdk/ndk-bundle/$i $out/bin/$i
+    for progname in ndk-build; do
+        ln -sf ../libexec/android-sdk/ndk-bundle/$progname $out/bin/$progname
     done
   '');
   noAuditTmpdir = true; # Audit script gets invoked by the build/ component in the path for the make standalone script