Unverified Commit 2cfac74b authored by Artturin's avatar Artturin Committed by GitHub
Browse files

Merge pull request #319139 from NyCodeGHG/android-ndks

android-ndks: add 25, 26 ndks, update default ndk and sdk
parents f575ce82 56d1e7a4
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -60,23 +60,23 @@ rec {
  armv7a-android-prebuilt = {
    config = "armv7a-unknown-linux-androideabi";
    rust.rustcTarget = "armv7-linux-androideabi";
    sdkVer = "28";
    ndkVer = "24";
    sdkVer = "33";
    ndkVer = "26";
    useAndroidPrebuilt = true;
  } // platforms.armv7a-android;

  aarch64-android-prebuilt = {
    config = "aarch64-unknown-linux-android";
    rust.rustcTarget = "aarch64-linux-android";
    sdkVer = "28";
    ndkVer = "24";
    sdkVer = "33";
    ndkVer = "26";
    useAndroidPrebuilt = true;
  };

  aarch64-android = {
    config = "aarch64-unknown-linux-android";
    sdkVer = "30";
    ndkVer = "24";
    sdkVer = "33";
    ndkVer = "26";
    libc = "bionic";
    useAndroidPrebuilt = false;
    useLLVM = true;
+4 −0
Original line number Diff line number Diff line
@@ -75,6 +75,10 @@
  before changing the package to `pkgs.stalwart-mail` in
  [`services.stalwart-mail.package`](#opt-services.stalwart-mail.package).

- `androidndkPkgs` has been updated to `androidndkPkgs_26`.

- Android NDK version 26 and SDK version 33 are now the default versions used for cross compilation to android.

- `haskell.lib.compose.justStaticExecutables` now disallows references to GHC in the
  output by default, to alert users to closure size issues caused by
  [#164630](https://github.com/NixOS/nixpkgs/issues/164630). See ["Packaging
+11 −65
Original line number Diff line number Diff line
{ lib, androidenv, buildPackages, pkgs, targetPackages
}:

{
  "21" =
let
      ndkVersion = "21.0.6113669";

      buildAndroidComposition = buildPackages.buildPackages.androidenv.composeAndroidPackages {
        includeNDK = true;
        inherit ndkVersion;
      };

      androidComposition = androidenv.composeAndroidPackages {
        includeNDK = true;
        inherit ndkVersion;
      };
    in
    import ./androidndk-pkgs.nix {
      inherit lib;
      inherit (buildPackages)
        makeWrapper autoPatchelfHook;
      inherit (pkgs)
        stdenv
        runCommand wrapBintoolsWith wrapCCWith;
      # buildPackages.foo rather than buildPackages.buildPackages.foo would work,
      # but for splicing messing up on infinite recursion for the variants we
      # *dont't* use. Using this workaround, but also making a test to ensure
      # these two really are the same.
      buildAndroidndk = buildAndroidComposition.ndk-bundle;
      androidndk = androidComposition.ndk-bundle;
      targetAndroidndkPkgs = if targetPackages ? androidndkPkgs_21 then targetPackages.androidndkPkgs_21 else throw "androidndkPkgs_21: no targetPackages, use `buildPackages.androidndkPkgs_21";
    };

  "23b" =
  makeNdkPkgs = ndkVersion:
    let
      ndkVersion = "23.1.7779620";

      buildAndroidComposition = buildPackages.buildPackages.androidenv.composeAndroidPackages {
        includeNDK = true;
        inherit ndkVersion;
@@ -45,6 +13,7 @@
        includeNDK = true;
        inherit ndkVersion;
      };
      majorVersion = lib.versions.major ndkVersion;
    in
    import ./androidndk-pkgs.nix {
      inherit lib;
@@ -59,37 +28,14 @@
      # these two really are the same.
      buildAndroidndk = buildAndroidComposition.ndk-bundle;
      androidndk = androidComposition.ndk-bundle;
      targetAndroidndkPkgs = if targetPackages ? androidndkPkgs_23b then targetPackages.androidndkPkgs_23b else throw "androidndkPkgs_23b: no targetPackages, use `buildPackages.androidndkPkgs_23b";
    };

  "24" =
    let
      ndkVersion = "24.0.8215888";

      buildAndroidComposition = buildPackages.buildPackages.androidenv.composeAndroidPackages {
        includeNDK = true;
        inherit ndkVersion;
      };

      androidComposition = androidenv.composeAndroidPackages {
        includeNDK = true;
        inherit ndkVersion;
      targetAndroidndkPkgs = if targetPackages ? "androidndkPkgs_${majorVersion}" then targetPackages."androidndkPkgs_${majorVersion}" else throw "androidndkPkgs_${majorVersion}: no targetPackages, use `buildPackages.androidndkPkgs_${majorVersion}";
    };
in
    import ./androidndk-pkgs.nix {
      inherit lib;
      inherit (buildPackages)
        makeWrapper autoPatchelfHook;
      inherit (pkgs)
        stdenv
        runCommand wrapBintoolsWith wrapCCWith;
      # buildPackages.foo rather than buildPackages.buildPackages.foo would work,
      # but for splicing messing up on infinite recursion for the variants we
      # *dont't* use. Using this workaround, but also making a test to ensure
      # these two really are the same.
      buildAndroidndk = buildAndroidComposition.ndk-bundle;
      androidndk = androidComposition.ndk-bundle;
      targetAndroidndkPkgs = if targetPackages ? androidndkPkgs_24 then targetPackages.androidndkPkgs_24 else throw "androidndkPkgs_24: no targetPackages, use `buildPackages.androidndkPkgs_24";
    };

{
  "21" = makeNdkPkgs "21.0.6113669";
  "23b" = makeNdkPkgs "23.1.7779620";
  "24" = makeNdkPkgs "24.0.8215888";
  "25" = makeNdkPkgs "25.2.9519653";
  "26" = makeNdkPkgs "26.3.11579264";
}
+3 −1
Original line number Diff line number Diff line
@@ -4070,10 +4070,12 @@ with pkgs;
  androidenv = callPackage ../development/mobile/androidenv { };
  androidndkPkgs = androidndkPkgs_21;
  androidndkPkgs = androidndkPkgs_26;
  androidndkPkgs_21 = (callPackage ../development/androidndk-pkgs {})."21";
  androidndkPkgs_23b = (callPackage ../development/androidndk-pkgs {})."23b";
  androidndkPkgs_24 = (callPackage ../development/androidndk-pkgs {})."24";
  androidndkPkgs_25 = (callPackage ../development/androidndk-pkgs {})."25";
  androidndkPkgs_26 = (callPackage ../development/androidndk-pkgs {})."26";
  androidsdk = androidenv.androidPkgs.androidsdk;