diff options
author | Morgan Jones <me@numin.it> | 2024-05-27 03:15:47 -0700 |
---|---|---|
committer | Morgan Jones <me@numin.it> | 2024-06-03 23:01:44 -0700 |
commit | 88ef7a859897a84bd526b0cdeae034daf03ce1c2 (patch) | |
tree | 4cd1026e3c11a217519d59fdd4e12acbe2e8485d /pkgs | |
parent | c3759101288ea92aec42ab7b8aed4e967cfb8eb3 (diff) |
{android-studio,androidenv}: add withSdk passthru and androidPkgs
Rename androidPkgs_9_0 to androidPkgs, and treat it more like a "full" androidenv package.
Diffstat (limited to 'pkgs')
5 files changed, 49 insertions, 15 deletions
diff --git a/pkgs/applications/editors/android-studio/common.nix b/pkgs/applications/editors/android-studio/common.nix index 291a280bdf0f2..ac210d20d2f84 100644 --- a/pkgs/applications/editors/android-studio/common.nix +++ b/pkgs/applications/editors/android-studio/common.nix @@ -1,7 +1,7 @@ { channel, pname, version, sha256Hash }: { alsa-lib -, bash +, runtimeShell , buildFHSEnv , cacert , coreutils @@ -214,17 +214,48 @@ let '') ]; }; -in runCommand - drvName - { - startScript = '' - #!${bash}/bin/bash - ${fhsEnv}/bin/${drvName}-fhs-env ${androidStudio}/bin/studio.sh "$@" + mkAndroidStudioWrapper = {androidStudio, androidSdk ? null}: runCommand drvName { + startScript = let + hasAndroidSdk = androidSdk != null; + androidSdkRoot = lib.optionalString hasAndroidSdk "${androidSdk}/libexec/android-sdk"; + in '' + #!${runtimeShell} + ${lib.optionalString hasAndroidSdk '' + echo "=== nixpkgs Android Studio wrapper" >&2 + + # Default ANDROID_SDK_ROOT to the packaged one, if not provided. + ANDROID_SDK_ROOT="''${ANDROID_SDK_ROOT-${androidSdkRoot}}" + + if [ -d "$ANDROID_SDK_ROOT" ]; then + export ANDROID_SDK_ROOT + # Legacy compatibility. + export ANDROID_HOME="$ANDROID_SDK_ROOT" + echo " - ANDROID_SDK_ROOT=$ANDROID_SDK_ROOT" >&2 + + # See if we can export ANDROID_NDK_ROOT too. + ANDROID_NDK_ROOT="$ANDROID_SDK_ROOT/ndk-bundle" + if [ ! -d "$ANDROID_NDK_ROOT" ]; then + ANDROID_NDK_ROOT="$(ls "$ANDROID_SDK_ROOT/ndk/"* 2>/dev/null | head -n1)" + fi + + if [ -d "$ANDROID_NDK_ROOT" ]; then + export ANDROID_NDK_ROOT + echo " - ANDROID_NDK_ROOT=$ANDROID_NDK_ROOT" >&2 + else + unset ANDROID_NDK_ROOT + fi + else + unset ANDROID_SDK_ROOT + unset ANDROID_HOME + fi + ''} + exec ${fhsEnv}/bin/${drvName}-fhs-env ${androidStudio}/bin/studio.sh "$@" ''; preferLocalBuild = true; allowSubstitutes = false; passthru = { unwrapped = androidStudio; + withSdk = androidSdk: mkAndroidStudioWrapper { inherit androidStudio androidSdk; }; }; meta = with lib; { description = "The Official IDE for Android (${channel} channel)"; @@ -261,4 +292,5 @@ in runCommand ln -s ${androidStudio}/bin/studio.png $out/share/pixmaps/${pname}.png ln -s ${desktopItem}/share/applications $out/share/applications - '' + ''; +in mkAndroidStudioWrapper { inherit androidStudio; } diff --git a/pkgs/development/mobile/androidenv/compose-android-packages.nix b/pkgs/development/mobile/androidenv/compose-android-packages.nix index 985ef9a8e23de..72dc64a7e0c22 100644 --- a/pkgs/development/mobile/androidenv/compose-android-packages.nix +++ b/pkgs/development/mobile/androidenv/compose-android-packages.nix @@ -11,8 +11,8 @@ , platformVersions ? [] , includeSources ? false , includeSystemImages ? false -, systemImageTypes ? [ "google_apis_playstore" ] -, abiVersions ? [ "armeabi-v7a" "arm64-v8a" ] +, systemImageTypes ? [ "google_apis" "google_apis_playstore" ] +, abiVersions ? [ "x86" "x86_64" "armeabi-v7a" "arm64-v8a" ] , cmakeVersions ? [ ] , includeNDK ? false , ndkVersion ? "26.3.11579264" diff --git a/pkgs/development/mobile/androidenv/default.nix b/pkgs/development/mobile/androidenv/default.nix index 3de6bf6e478cd..6c6f974be706b 100644 --- a/pkgs/development/mobile/androidenv/default.nix +++ b/pkgs/development/mobile/androidenv/default.nix @@ -15,9 +15,11 @@ rec { inherit composeAndroidPackages; }; - androidPkgs_9_0 = composeAndroidPackages { - platformVersions = [ "28" ]; - abiVersions = [ "x86" "x86_64"]; + androidPkgs = composeAndroidPackages { + platformVersions = [ "28" "29" "30" "31" "32" "33" "34" ]; + includeEmulator = true; + includeSystemImages = true; + includeNDK = true; }; test-suite = pkgs.callPackage ./test-suite.nix {}; diff --git a/pkgs/tools/graphics/snapdragon-profiler/default.nix b/pkgs/tools/graphics/snapdragon-profiler/default.nix index aa8477d5717df..a4ece4ae1ab21 100644 --- a/pkgs/tools/graphics/snapdragon-profiler/default.nix +++ b/pkgs/tools/graphics/snapdragon-profiler/default.nix @@ -52,7 +52,7 @@ stdenv.mkDerivation rec { cp -r * $out/lib/snapdragon-profiler makeWrapper "${mono}/bin/mono" $out/bin/snapdragon-profiler \ --add-flags "$out/lib/snapdragon-profiler/SnapdragonProfiler.exe" \ - --suffix PATH : ${lib.makeBinPath [ jre androidenv.androidPkgs_9_0.platform-tools coreutils ]} \ + --suffix PATH : ${lib.makeBinPath [ jre androidenv.androidPkgs.platform-tools coreutils ]} \ --prefix MONO_GAC_PREFIX : ${gtk-sharp-2_0} \ --suffix LD_LIBRARY_PATH : $(echo $NIX_LDFLAGS | sed 's/ -L/:/g;s/ -rpath /:/g;s/-rpath //') \ --chdir "$out/lib/snapdragon-profiler" # Fixes themes not loading correctly diff --git a/pkgs/tools/networking/gnirehtet/default.nix b/pkgs/tools/networking/gnirehtet/default.nix index 2281822d2e778..95ef1c7402d91 100644 --- a/pkgs/tools/networking/gnirehtet/default.nix +++ b/pkgs/tools/networking/gnirehtet/default.nix @@ -44,7 +44,7 @@ rustPlatform.buildRustPackage rec { postInstall = '' wrapProgram $out/bin/gnirehtet \ --set GNIREHTET_APK ${apk}/gnirehtet.apk \ - --set ADB ${androidenv.androidPkgs_9_0.platform-tools}/bin/adb + --set ADB ${androidenv.androidPkgs.platform-tools}/bin/adb ''; meta = with lib; { |