btrbk: add mainProgram (#356350)
[NixPkgs.git] / pkgs / stdenv / darwin / override-sdk.nix
blob243b8e2633d7c0e0c644e948a56280fdeae32da7
1 # This is a compatibility shim with `overrideSDK`.
2 # Note: `overrideSDK` is deprecated. It will be added to `aliases.nix` after in-tree usage has been cleaned up.
4   lib,
5   stdenvNoCC,
6   extendMkDerivationArgs,
7   pkgsHostTarget,
8 }:
10 stdenv: sdkVersion:
11 let
12   newVersion = {
13     inherit (stdenv.hostPlatform) darwinMinVersion darwinSdkVersion;
14   } // (if lib.isAttrs sdkVersion then sdkVersion else { darwinSdkVersion = sdkVersion; });
16   inherit (newVersion) darwinMinVersion darwinSdkVersion;
18   sdkMapping = {
19     "11.0" = pkgsHostTarget.apple-sdk_11;
20     "12.3" = pkgsHostTarget.apple-sdk_12;
21   };
23   minVersionHook = pkgsHostTarget.darwinMinVersionHook darwinMinVersion;
25   resolvedSdk =
26     sdkMapping.${darwinSdkVersion} or (lib.throw ''
27       `overrideSDK` and `darwin.apple_sdk_11_0.callPackage` are deprecated.
28       Only the 11.0 and 12.3 SDKs are supported using them. Please use
29       the versioned `apple-sdk` variants to use other SDK versions.
31       See the stdenv documentation for how to use `apple-sdk`.
32     '');
34 stdenv.override (old: {
35   mkDerivationFromStdenv = extendMkDerivationArgs old (args: {
36     buildInputs =
37       args.buildInputs or [ ]
38       ++ lib.optional (stdenv.hostPlatform.darwinMinVersion != darwinMinVersion) minVersionHook
39       ++ lib.optional (stdenv.hostPlatform.darwinSdkVersion != darwinSdkVersion) resolvedSdk;
40   });