0
0
Fork 0
mirror of https://github.com/NixOS/nixpkgs.git synced 2025-07-13 21:50:33 +03:00

Merge pull request #319139 from NyCodeGHG/android-ndks

android-ndks: add 25, 26 ndks, update default ndk and sdk
This commit is contained in:
Artturin 2024-06-23 20:39:28 +03:00 committed by GitHub
commit 2cfac74be5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 49 additions and 97 deletions

View file

@ -60,23 +60,23 @@ rec {
armv7a-android-prebuilt = { armv7a-android-prebuilt = {
config = "armv7a-unknown-linux-androideabi"; config = "armv7a-unknown-linux-androideabi";
rust.rustcTarget = "armv7-linux-androideabi"; rust.rustcTarget = "armv7-linux-androideabi";
sdkVer = "28"; sdkVer = "33";
ndkVer = "24"; ndkVer = "26";
useAndroidPrebuilt = true; useAndroidPrebuilt = true;
} // platforms.armv7a-android; } // platforms.armv7a-android;
aarch64-android-prebuilt = { aarch64-android-prebuilt = {
config = "aarch64-unknown-linux-android"; config = "aarch64-unknown-linux-android";
rust.rustcTarget = "aarch64-linux-android"; rust.rustcTarget = "aarch64-linux-android";
sdkVer = "28"; sdkVer = "33";
ndkVer = "24"; ndkVer = "26";
useAndroidPrebuilt = true; useAndroidPrebuilt = true;
}; };
aarch64-android = { aarch64-android = {
config = "aarch64-unknown-linux-android"; config = "aarch64-unknown-linux-android";
sdkVer = "30"; sdkVer = "33";
ndkVer = "24"; ndkVer = "26";
libc = "bionic"; libc = "bionic";
useAndroidPrebuilt = false; useAndroidPrebuilt = false;
useLLVM = true; useLLVM = true;

View file

@ -75,6 +75,10 @@
before changing the package to `pkgs.stalwart-mail` in before changing the package to `pkgs.stalwart-mail` in
[`services.stalwart-mail.package`](#opt-services.stalwart-mail.package). [`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 - `haskell.lib.compose.justStaticExecutables` now disallows references to GHC in the
output by default, to alert users to closure size issues caused by output by default, to alert users to closure size issues caused by
[#164630](https://github.com/NixOS/nixpkgs/issues/164630). See ["Packaging [#164630](https://github.com/NixOS/nixpkgs/issues/164630). See ["Packaging

View file

@ -1,95 +1,41 @@
{ lib, androidenv, buildPackages, pkgs, targetPackages { lib, androidenv, buildPackages, pkgs, targetPackages
}: }:
let
makeNdkPkgs = ndkVersion:
let
buildAndroidComposition = buildPackages.buildPackages.androidenv.composeAndroidPackages {
includeNDK = true;
inherit ndkVersion;
};
androidComposition = androidenv.composeAndroidPackages {
includeNDK = true;
inherit ndkVersion;
};
majorVersion = lib.versions.major 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_${majorVersion}" then targetPackages."androidndkPkgs_${majorVersion}" else throw "androidndkPkgs_${majorVersion}: no targetPackages, use `buildPackages.androidndkPkgs_${majorVersion}";
};
in
{ {
"21" = "21" = makeNdkPkgs "21.0.6113669";
let "23b" = makeNdkPkgs "23.1.7779620";
ndkVersion = "21.0.6113669"; "24" = makeNdkPkgs "24.0.8215888";
"25" = makeNdkPkgs "25.2.9519653";
buildAndroidComposition = buildPackages.buildPackages.androidenv.composeAndroidPackages { "26" = makeNdkPkgs "26.3.11579264";
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" =
let
ndkVersion = "23.1.7779620";
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_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;
};
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";
};
} }

View file

@ -4070,10 +4070,12 @@ with pkgs;
androidenv = callPackage ../development/mobile/androidenv { }; androidenv = callPackage ../development/mobile/androidenv { };
androidndkPkgs = androidndkPkgs_21; androidndkPkgs = androidndkPkgs_26;
androidndkPkgs_21 = (callPackage ../development/androidndk-pkgs {})."21"; androidndkPkgs_21 = (callPackage ../development/androidndk-pkgs {})."21";
androidndkPkgs_23b = (callPackage ../development/androidndk-pkgs {})."23b"; androidndkPkgs_23b = (callPackage ../development/androidndk-pkgs {})."23b";
androidndkPkgs_24 = (callPackage ../development/androidndk-pkgs {})."24"; 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; androidsdk = androidenv.androidPkgs.androidsdk;