summary refs log tree commit diff
path: root/pkgs/development/mobile/androidenv/compose-android-packages.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/mobile/androidenv/compose-android-packages.nix')
-rw-r--r--pkgs/development/mobile/androidenv/compose-android-packages.nix57
1 files changed, 28 insertions, 29 deletions
diff --git a/pkgs/development/mobile/androidenv/compose-android-packages.nix b/pkgs/development/mobile/androidenv/compose-android-packages.nix
index e5802c12e81..6e6a349cccc 100644
--- a/pkgs/development/mobile/androidenv/compose-android-packages.nix
+++ b/pkgs/development/mobile/androidenv/compose-android-packages.nix
@@ -21,7 +21,7 @@
 }:
 
 let
-  inherit (pkgs) stdenv fetchurl makeWrapper unzip;
+  inherit (pkgs) stdenv lib fetchurl makeWrapper unzip;
 
   # Determine the Android os identifier from Nix's system identifier
   os = if stdenv.system == "x86_64-linux" then "linux"
@@ -59,12 +59,12 @@ let
   };
 
   system-images-packages =
-    stdenv.lib.recursiveUpdate
+    lib.recursiveUpdate
       system-images-packages-android
-      (stdenv.lib.recursiveUpdate system-images-packages-android-tv
-        (stdenv.lib.recursiveUpdate system-images-packages-android-wear
-          (stdenv.lib.recursiveUpdate system-images-packages-android-wear-cn
-            (stdenv.lib.recursiveUpdate system-images-packages-google_apis system-images-packages-google_apis_playstore))));
+      (lib.recursiveUpdate system-images-packages-android-tv
+        (lib.recursiveUpdate system-images-packages-android-wear
+          (lib.recursiveUpdate system-images-packages-android-wear-cn
+            (lib.recursiveUpdate system-images-packages-google_apis system-images-packages-google_apis_playstore))));
 
   # Generated addons
   addons = import ./generated/addons.nix {
@@ -77,15 +77,13 @@ rec {
   };
 
   platform-tools = import ./platform-tools.nix {
-    inherit deployAndroidPackage os autoPatchelfHook pkgs;
-    inherit (stdenv) lib;
+    inherit deployAndroidPackage os autoPatchelfHook pkgs lib;
     package = packages.platform-tools."${platformToolsVersion}";
   };
 
   build-tools = map (version:
     import ./build-tools.nix {
-      inherit deployAndroidPackage os autoPatchelfHook makeWrapper pkgs pkgs_i686;
-      inherit (stdenv) lib;
+      inherit deployAndroidPackage os autoPatchelfHook makeWrapper pkgs pkgs_i686 lib;
       package = packages.build-tools."${version}";
     }
   ) buildToolsVersions;
@@ -96,8 +94,7 @@ rec {
   };
 
   emulator = import ./emulator.nix {
-    inherit deployAndroidPackage os autoPatchelfHook makeWrapper pkgs pkgs_i686;
-    inherit (stdenv) lib;
+    inherit deployAndroidPackage os autoPatchelfHook makeWrapper pkgs pkgs_i686 lib;
     package = packages.emulator."${emulatorVersion}"."${os}";
   };
 
@@ -115,12 +112,18 @@ rec {
     }
   ) platformVersions;
 
-  system-images = stdenv.lib.flatten (map (apiVersion:
+  system-images = lib.flatten (map (apiVersion:
     map (type:
       map (abiVersion:
         deployAndroidPackage {
           inherit os;
           package = system-images-packages.${apiVersion}.${type}.${abiVersion};
+          # Patch 'google_apis' system images so they're recognized by the sdk.
+          # Without this, `android list targets` shows 'Tag/ABIs : no ABIs' instead
+          # of 'Tag/ABIs : google_apis*/*' and the emulator fails with an ABI-related error.
+          patchInstructions = lib.optionalString (lib.hasPrefix "google_apis" type) ''
+            sed -i '/^Addon.Vendor/d' source.properties
+          '';
         }
       ) abiVersions
     ) systemImageTypes
@@ -128,23 +131,20 @@ rec {
 
   lldb = map (version:
     import ./lldb.nix {
-      inherit deployAndroidPackage os autoPatchelfHook pkgs;
-      inherit (stdenv) lib;
+      inherit deployAndroidPackage os autoPatchelfHook pkgs lib;
       package = packages.lldb."${version}";
     }
   ) lldbVersions;
 
   cmake = map (version:
     import ./cmake.nix {
-      inherit deployAndroidPackage os autoPatchelfHook pkgs;
-      inherit (stdenv) lib;
+      inherit deployAndroidPackage os autoPatchelfHook pkgs lib;
       package = packages.cmake."${version}";
     }
   ) cmakeVersions;
 
   ndk-bundle = import ./ndk-bundle {
-    inherit deployAndroidPackage os autoPatchelfHook makeWrapper pkgs platform-tools;
-    inherit (stdenv) lib;
+    inherit deployAndroidPackage os autoPatchelfHook makeWrapper pkgs lib platform-tools;
     package = packages.ndk-bundle."${ndkVersion}";
   };
 
@@ -164,24 +164,24 @@ rec {
 
   # Function that automatically links all plugins for which multiple versions can coexist
   linkPlugins = {name, plugins}:
-    stdenv.lib.optionalString (plugins != []) ''
+    lib.optionalString (plugins != []) ''
       mkdir -p ${name}
-      ${stdenv.lib.concatMapStrings (plugin: ''
+      ${lib.concatMapStrings (plugin: ''
         ln -s ${plugin}/libexec/android-sdk/${name}/* ${name}
       '') plugins}
     '';
 
   # Function that automatically links a plugin for which only one version exists
   linkPlugin = {name, plugin, check ? true}:
-    stdenv.lib.optionalString check ''
+    lib.optionalString check ''
       ln -s ${plugin}/libexec/android-sdk/* ${name}
     '';
 
   # Links all plugins related to a requested platform
   linkPlatformPlugins = {name, plugins, check}:
-    stdenv.lib.optionalString check ''
+    lib.optionalString check ''
       mkdir -p ${name}
-      ${stdenv.lib.concatMapStrings (plugin: ''
+      ${lib.concatMapStrings (plugin: ''
         ln -s ${plugin}/libexec/android-sdk/${name}/* ${name}
       '') plugins}
     ''; # */
@@ -194,8 +194,7 @@ rec {
     https://developer.android.com/studio/terms
     by setting nixpkgs config option 'android_sdk.accept_license = true;'
   '' else import ./tools.nix {
-    inherit deployAndroidPackage requireFile packages toolsVersion autoPatchelfHook makeWrapper os pkgs pkgs_i686;
-    inherit (stdenv) lib;
+    inherit deployAndroidPackage requireFile packages toolsVersion autoPatchelfHook makeWrapper os pkgs pkgs_i686 lib;
 
     postInstall = ''
       # Symlink all requested plugins
@@ -210,9 +209,9 @@ rec {
       ${linkPlugins { name = "cmake"; plugins = cmake; }}
       ${linkPlugin { name = "ndk-bundle"; plugin = ndk-bundle; check = includeNDK; }}
 
-      ${stdenv.lib.optionalString includeSystemImages ''
+      ${lib.optionalString includeSystemImages ''
         mkdir -p system-images
-        ${stdenv.lib.concatMapStrings (system-image: ''
+        ${lib.concatMapStrings (system-image: ''
           apiVersion=$(basename $(echo ${system-image}/libexec/android-sdk/system-images/*))
           type=$(basename $(echo ${system-image}/libexec/android-sdk/system-images/*/*))
           mkdir -p system-images/$apiVersion/$type
@@ -224,7 +223,7 @@ rec {
       ${linkPlatformPlugins { name = "add-ons"; plugins = google-apis; check = useGoogleTVAddOns; }}
 
       # Link extras
-      ${stdenv.lib.concatMapStrings (identifier:
+      ${lib.concatMapStrings (identifier:
         let
           path = addons.extras."${identifier}".path;
           addon = deployAndroidPackage {