bandwhich: 0.23.0 -> 0.23.1; move to by-name; nixfmt; useFetchCargoVendor (#356934)
[NixPkgs.git] / pkgs / development / androidndk-pkgs / default.nix
blobf7ffb07450709ba98ff2de78096750a44da2522b
2   lib,
3   androidenv,
4   buildPackages,
5   pkgs,
6   targetPackages,
7   androidndkPkgs_23,
8   config,
9 }:
11 let
12   makeNdkPkgs =
13     ndkVersion: llvmPackages:
14     let
15       buildAndroidComposition = buildPackages.buildPackages.androidenv.composeAndroidPackages {
16         includeNDK = true;
17         inherit ndkVersion;
18       };
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 lib;
28       inherit (buildPackages)
29         makeWrapper
30         autoPatchelfHook
31         ;
32       inherit (pkgs)
33         stdenv
34         runCommand
35         wrapBintoolsWith
36         wrapCCWith
37         ;
39       # For hardeningUnsupportedFlagsByTargetPlatform
40       inherit llvmPackages;
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     };
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;