summary refs log tree commit diff
path: root/pkgs/development/mobile/androidenv/build-tools.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/mobile/androidenv/build-tools.nix')
-rw-r--r--pkgs/development/mobile/androidenv/build-tools.nix72
1 files changed, 19 insertions, 53 deletions
diff --git a/pkgs/development/mobile/androidenv/build-tools.nix b/pkgs/development/mobile/androidenv/build-tools.nix
index b362dc2dca5..976ef141627 100644
--- a/pkgs/development/mobile/androidenv/build-tools.nix
+++ b/pkgs/development/mobile/androidenv/build-tools.nix
@@ -1,53 +1,19 @@
-{stdenv, lib, stdenv_32bit, fetchurl, unzip, zlib_32bit, ncurses_32bit, file, zlib, ncurses, coreutils, buildToolsSources}:
-
-let buildBuildTools = name: { version, src }:
-  stdenv.mkDerivation rec {
-    inherit version src;
-    name = "android-build-tools-r${version}";
-    buildCommand = ''
-      mkdir -p $out/build-tools
-      cd $out/build-tools
-      unzip $src
-      mv android-* ${version}
-
-      cd ${version}
-
-      for f in $(grep -Rl /bin/ls .); do
-        sed -i -e "s|/bin/ls|${coreutils}/bin/ls|" "$f"
-      done
-
-      ${stdenv.lib.optionalString (stdenv.hostPlatform.system == "i686-linux" || stdenv.hostPlatform.system == "x86_64-linux")
-        ''
-
-          ln -s ${ncurses.out}/lib/libncurses.so.5 `pwd`/lib64/libtinfo.so.5
-
-          find . -type f -print0 | while IFS= read -r -d "" file
-          do
-            type=$(file "$file")
-            ## Patch 64-bit binaries
-            if grep -q "ELF 64-bit" <<< "$type"
-            then
-              if grep -q "interpreter" <<< "$type"
-              then
-                patchelf --set-interpreter ${stdenv.cc.libc.out}/lib/ld-linux-x86-64.so.2 "$file"
-              fi
-              patchelf --set-rpath `pwd`/lib64:${stdenv.cc.cc.lib.out}/lib:${zlib.out}/lib:${ncurses.out}/lib "$file"
-            ## Patch 32-bit binaries
-            elif grep -q "ELF 32-bit" <<< "$type"
-            then
-              if grep -q "interpreter" <<< "$type"
-              then
-                patchelf --set-interpreter ${stdenv_32bit.cc.libc.out}/lib/ld-linux.so.2 "$file"
-              fi
-              patchelf --set-rpath ${stdenv_32bit.cc.cc.lib.out}/lib:${zlib_32bit.out}/lib:${ncurses_32bit.out}/lib "$file"
-            fi
-          done
-        ''}
-
-        patchShebangs .
-    '';
-
-    buildInputs = [ unzip file ];
-  };
-in
-  lib.mapAttrs buildBuildTools buildToolsSources
+{deployAndroidPackage, lib, package, os, autoPatchelfHook, makeWrapper, pkgs, pkgs_i686}:
+
+deployAndroidPackage {
+  inherit package os;
+  buildInputs = [ autoPatchelfHook makeWrapper ] ++
+    lib.optional (os == "linux") [ pkgs.glibc pkgs.zlib pkgs.ncurses5 pkgs_i686.glibc pkgs_i686.zlib pkgs_i686.ncurses5 ];
+  patchInstructions = ''
+    ${lib.optionalString (os == "linux") ''
+      addAutoPatchelfSearchPath $packageBaseDir/lib
+      addAutoPatchelfSearchPath $packageBaseDir/lib64
+      autoPatchelf --no-recurse $packageBaseDir/lib64
+      autoPatchelf --no-recurse $packageBaseDir
+    ''}
+
+    wrapProgram $PWD/mainDexClasses \
+      --prefix PATH : ${pkgs.jdk8}/bin
+  '';
+  noAuditTmpdir = true; # The checker script gets confused by the build-tools path that is incorrectly identified as a reference to /build
+}