nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 androidenv,
4 buildPackages,
5 pkgs,
6 targetPackages,
7 androidndkPkgs_23,
8 config,
9}:
10
11let
12 makeNdkPkgs =
13 ndkVersion: llvmPackages:
14 let
15 buildAndroidComposition = buildPackages.buildPackages.androidenv.composeAndroidPackages {
16 includeNDK = true;
17 inherit ndkVersion;
18 };
19
20 androidComposition = androidenv.composeAndroidPackages {
21 includeNDK = true;
22 inherit ndkVersion;
23 };
24 majorVersion = lib.versions.major ndkVersion;
25 in
26 import ./androidndk-pkgs.nix {
27 inherit config lib;
28 inherit (buildPackages)
29 makeWrapper
30 autoPatchelfHook
31 ;
32 inherit (pkgs)
33 stdenv
34 runCommand
35 wrapBintoolsWith
36 wrapCCWith
37 ;
38
39 # For hardeningUnsupportedFlagsByTargetPlatform
40 inherit llvmPackages;
41
42 # buildPackages.foo rather than buildPackages.buildPackages.foo would work,
43 # but for splicing messing up on infinite recursion for the variants we
44 # *dont't* use. Using this workaround, but also making a test to ensure
45 # these two really are the same.
46 buildAndroidndk = buildAndroidComposition.ndk-bundle;
47 androidndk = androidComposition.ndk-bundle;
48 targetAndroidndkPkgs =
49 if targetPackages ? "androidndkPkgs_${majorVersion}" then
50 targetPackages."androidndkPkgs_${majorVersion}"
51 else
52 throw "androidndkPkgs_${majorVersion}: no targetPackages, use `buildPackages.androidndkPkgs_${majorVersion}";
53 };
54in
55
56lib.recurseIntoAttrs {
57 "21" = makeNdkPkgs "21.0.6113669" pkgs.llvmPackages_14; # "9"
58 "23" = makeNdkPkgs "23.1.7779620" pkgs.llvmPackages_14; # "12"
59 # Versions below 24 use a version not available in nixpkgs/old version which could be removed in the near future so use 14 for them as this is only used to get the hardening flags.
60 "24" = makeNdkPkgs "24.0.8215888" pkgs.llvmPackages_14;
61 "25" = makeNdkPkgs "25.2.9519653" pkgs.llvmPackages_14;
62 "26" = makeNdkPkgs "26.3.11579264" pkgs.llvmPackages_17;
63 "27" = makeNdkPkgs "27.0.12077973" pkgs.llvmPackages_18;
64 "28" = makeNdkPkgs "28.0.13004108" pkgs.llvmPackages_19;
65}