Merge pull request #219431 from malob/apple_sdk_11_0-add-stdenvs

darwin.apple_sdk_11_0.clang{12-15}Stdenv: init
This commit is contained in:
toonn
2023-03-06 11:54:24 +01:00
committed by GitHub
2 changed files with 49 additions and 34 deletions
@@ -1,14 +1,14 @@
{ lib, stdenv, fetchFromGitHub, openssl, sqlite }:
{ lib, stdenv, clang14Stdenv, fetchFromGitHub, openssl, sqlite }:
stdenv.mkDerivation rec {
(if stdenv.isDarwin then clang14Stdenv else stdenv).mkDerivation rec {
pname = "signalbackup-tools";
version = "20230223-1";
version = "20230304-3";
src = fetchFromGitHub {
owner = "bepaald";
repo = pname;
rev = version;
hash = "sha256-tBjMg+aYXmIhS2tw+D5NkBieWKiWwEVBWs6LA3rFaQQ=";
hash = "sha256-y6ApImUkS25kUPih/hl1ngLAkeBAX+MhJ6XuiVU9aZQ=";
};
postPatch = ''
@@ -36,6 +36,5 @@ stdenv.mkDerivation rec {
license = licenses.gpl3Only;
maintainers = [ maintainers.malo ];
platforms = platforms.all;
broken = stdenv.isDarwin;
};
}
@@ -56,28 +56,51 @@ let
'';
};
mkStdenv = stdenv:
let
cc = stdenv.cc.override {
bintools = stdenv.cc.bintools.override { libc = packages.Libsystem; };
libc = packages.Libsystem;
};
in
if stdenv.isAarch64 then stdenv
else
(overrideCC stdenv cc).override {
targetPlatform = stdenv.targetPlatform // {
darwinMinVersion = "10.12";
darwinSdkVersion = "11.0";
};
};
stdenvs = {
stdenv = mkStdenv stdenv;
} // builtins.listToAttrs (map
(v: { name = "clang${v}Stdenv"; value = mkStdenv pkgs."llvmPackages_${v}".stdenv; })
[ "12" "13" "14" "15" ]
);
callPackage = newScope (packages // pkgs.darwin // { inherit MacOSX-SDK; });
packages = {
inherit (callPackage ./apple_sdk.nix {}) frameworks libs;
packages = stdenvs // {
inherit (callPackage ./apple_sdk.nix { }) frameworks libs;
# TODO: this is nice to be private. is it worth the callPackage above?
# Probably, I don't think that callPackage costs much at all.
inherit MacOSX-SDK CLTools_Executables;
Libsystem = callPackage ./libSystem.nix {};
Libsystem = callPackage ./libSystem.nix { };
LibsystemCross = pkgs.darwin.Libsystem;
libcharset = callPackage ./libcharset.nix {};
libunwind = callPackage ./libunwind.nix {};
libnetwork = callPackage ./libnetwork.nix {};
libpm = callPackage ./libpm.nix {};
libcharset = callPackage ./libcharset.nix { };
libunwind = callPackage ./libunwind.nix { };
libnetwork = callPackage ./libnetwork.nix { };
libpm = callPackage ./libpm.nix { };
# Avoid introducing a new objc4 if stdenv already has one, to prevent
# conflicting LLVM modules.
objc4 = if stdenv ? objc4 then stdenv.objc4 else callPackage ./libobjc.nix {};
objc4 = stdenv.objc4 or (callPackage ./libobjc.nix { });
# questionable aliases
configd = pkgs.darwin.apple_sdk.frameworks.SystemConfiguration;
IOKit = pkgs.darwin.apple_sdk.frameworks.IOKit;
inherit (pkgs.darwin.apple_sdk.frameworks) IOKit;
xcodebuild = pkgs.xcbuild.override {
inherit (pkgs.darwin.apple_sdk_11_0) stdenv;
@@ -89,30 +112,23 @@ let
inherit (pkgs) rustc cargo;
};
callPackage = newScope (lib.optionalAttrs stdenv.isDarwin rec {
inherit (pkgs.darwin.apple_sdk_11_0) stdenv xcodebuild rustPlatform;
callPackage = newScope (lib.optionalAttrs stdenv.isDarwin (stdenvs // rec {
inherit (pkgs.darwin.apple_sdk_11_0) xcodebuild rustPlatform;
darwin = pkgs.darwin.overrideScope (_: prev: {
inherit (prev.darwin.apple_sdk_11_0) Libsystem LibsystemCross libcharset libunwind objc4 configd IOKit Security;
inherit (prev.darwin.apple_sdk_11_0)
IOKit
Libsystem
LibsystemCross
Security
configd
libcharset
libunwind
objc4
;
apple_sdk = prev.darwin.apple_sdk_11_0;
CF = prev.darwin.apple_sdk_11_0.CoreFoundation;
});
xcbuild = xcodebuild;
});
stdenv =
let
clang = stdenv.cc.override {
bintools = stdenv.cc.bintools.override { libc = packages.Libsystem; };
libc = packages.Libsystem;
};
in
if stdenv.isAarch64 then stdenv
else
(overrideCC stdenv clang).override {
targetPlatform = stdenv.targetPlatform // {
darwinMinVersion = "10.12";
darwinSdkVersion = "11.0";
};
};
}));
};
in packages