Files
Dark Steveneq 646b892680
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
push sheeet
2025-10-09 14:15:47 +02:00

59 lines
1.6 KiB
Nix

{
lib,
androidenv,
buildPackages,
pkgs,
targetPackages,
config,
}:
let
makeNdkPkgs =
ndkVersion: llvmPackages:
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 config lib;
inherit (buildPackages)
makeWrapper
autoPatchelfHook
;
inherit (pkgs)
stdenv
runCommand
wrapBintoolsWith
wrapCCWith
;
# For hardeningUnsupportedFlagsByTargetPlatform
inherit llvmPackages;
# 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
lib.recurseIntoAttrs {
"27" = makeNdkPkgs "27.0.12077973" pkgs.llvmPackages_18;
"28" = makeNdkPkgs "28.0.13004108" pkgs.llvmPackages_19;
}