Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at flake-libs 52 lines 1.3 kB view raw
1{ 2 deployAndroidPackage, 3 lib, 4 package, 5 autoPatchelfHook, 6 makeWrapper, 7 os, 8 arch, 9 pkgs, 10 stdenv, 11 postInstall, 12 meta, 13}: 14 15deployAndroidPackage { 16 name = "androidsdk"; 17 inherit package os arch; 18 nativeBuildInputs = [ 19 makeWrapper 20 ] ++ lib.optionals stdenv.hostPlatform.isLinux [ autoPatchelfHook ]; 21 22 patchInstructions = '' 23 ${lib.optionalString (os == "linux") '' 24 # Auto patch all binaries 25 autoPatchelf . 26 ''} 27 28 # Strip double dots from the root path 29 export ANDROID_SDK_ROOT="$out/libexec/android-sdk" 30 31 # Wrap all scripts that require JAVA_HOME 32 find $ANDROID_SDK_ROOT/${package.path}/bin -maxdepth 1 -type f -executable | while read program; do 33 if grep -q "JAVA_HOME" $program; then 34 wrapProgram $program --prefix PATH : ${pkgs.jdk17}/bin \ 35 --prefix ANDROID_SDK_ROOT : $ANDROID_SDK_ROOT 36 fi 37 done 38 39 # Wrap sdkmanager script 40 wrapProgram $ANDROID_SDK_ROOT/${package.path}/bin/sdkmanager \ 41 --prefix PATH : ${lib.makeBinPath [ pkgs.jdk17 ]} \ 42 --add-flags "--sdk_root=$ANDROID_SDK_ROOT" 43 44 # Patch all script shebangs 45 patchShebangs $ANDROID_SDK_ROOT/${package.path}/bin 46 47 cd $ANDROID_SDK_ROOT 48 ${postInstall} 49 ''; 50 51 inherit meta; 52}