about summary refs log tree commit diff
path: root/pkgs/development/mobile/androidenv/androidsdk.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/mobile/androidenv/androidsdk.nix')
-rw-r--r--pkgs/development/mobile/androidenv/androidsdk.nix33
1 files changed, 18 insertions, 15 deletions
diff --git a/pkgs/development/mobile/androidenv/androidsdk.nix b/pkgs/development/mobile/androidenv/androidsdk.nix
index 1573de63e0964..38377cf8bbb42 100644
--- a/pkgs/development/mobile/androidenv/androidsdk.nix
+++ b/pkgs/development/mobile/androidenv/androidsdk.nix
@@ -1,9 +1,9 @@
 { stdenv, stdenv_32bit, fetchurl, unzip, makeWrapper
 , platformTools, buildTools, support, platforms, sysimages, addons
 , zlib_32bit
-, libX11_32bit, libxcb_32bit, libXau_32bit, libXdmcp_32bit, libXext_32bit, mesa_32bit
-, libX11, libXext, libXrender, libxcb, libXau, libXdmcp, mesa
-, freetype, fontconfig, gtk, atk
+, libX11_32bit, libxcb_32bit, libXau_32bit, libXdmcp_32bit, libXext_32bit, mesa_32bit, alsaLib_32bit
+, libX11, libXext, libXrender, libxcb, libXau, libXdmcp, libXtst, mesa, alsaLib
+, freetype, fontconfig, glib, gtk, atk, file, jdk
 }:
 {platformVersions, abiVersions, useGoogleAPIs}:
 
@@ -56,11 +56,21 @@ stdenv.mkDerivation {
           patchelf --set-rpath ${stdenv_32bit.gcc.gcc}/lib:${zlib_32bit}/lib $i
       done
     
-      # The emulators need additional libraries, which are not in the RPATH => let's wrap them
+      # The android script has a hardcoded reference to /bin/ls that must be patched
+      sed -i -e "s|/bin/ls|ls|" android
+      
+      # The android script used SWT and wants to dynamically load some GTK+ stuff.
+      # The following wrapper ensures that they can be found:
+      wrapProgram `pwd`/android \
+        --prefix PATH : ${jdk}/bin \
+        --prefix LD_LIBRARY_PATH : ${glib}/lib:${gtk}/lib:${libXtst}/lib
+    
+      # The emulators need additional libraries, which are dynamically loaded => let's wrap them
     
       for i in emulator emulator-arm emulator-mips emulator-x86
       do
           wrapProgram `pwd`/$i \
+            --prefix PATH : ${file}/bin \
             --suffix LD_LIBRARY_PATH : `pwd`/lib:${libX11_32bit}/lib:${libxcb_32bit}/lib:${libXau_32bit}/lib:${libXdmcp_32bit}/lib:${libXext_32bit}/lib:${mesa_32bit}/lib
       done
       
@@ -68,7 +78,8 @@ stdenv.mkDerivation {
         for i in emulator64-arm emulator64-mips emulator64-x86
         do
             wrapProgram `pwd`/$i \
-            --suffix LD_LIBRARY_PATH : `pwd`/lib:${libX11}/lib:${libxcb}/lib:${libXau}/lib:${libXdmcp}/lib:${libXext}/lib:${mesa}/lib
+              --prefix PATH : ${file}/bin \
+              --suffix LD_LIBRARY_PATH : `pwd`/lib:${libX11}/lib:${libxcb}/lib:${libXau}/lib:${libXdmcp}/lib:${libXext}/lib:${mesa}/lib:${alsaLib}/lib
         done
       ''}
     ''}
@@ -172,11 +183,7 @@ stdenv.mkDerivation {
     do
         if [ ! -d $i ] && [ -x $i ]
         then
-            ( echo '#! ${stdenv.shell} -e'
-              echo "cd $out/libexec/android-sdk-*/tools"
-              echo "exec ./$(basename $i) \"\$@\"" ) > $out/bin/$(basename $i)
-          
-              chmod +x $out/bin/$(basename $i)
+            ln -sf $i $out/bin/$(basename $i)
         fi
     done
     
@@ -184,11 +191,7 @@ stdenv.mkDerivation {
     do
         if [ ! -d $i ] && [ -x $i ]
         then
-            ( echo '#! ${stdenv.shell} -e'
-              echo "cd $out/libexec/android-sdk-*/platform-tools"
-              echo "exec ./$(basename $i) \"\$@\"") > $out/bin/$(basename $i)
-          
-              chmod +x $out/bin/$(basename $i)
+            ln -sf $i $out/bin/$(basename $i)
         fi
     done
   '';