Unverified Commit 6b5a55c8 authored by toonn's avatar toonn Committed by GitHub
Browse files

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

darwin.apple_sdk_11_0.clang{12-15}Stdenv: init
parents 6dca2bd6 919dd089
Loading
Loading
Loading
Loading
+4 −5
Original line number Diff line number Diff line
{ 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;
  };
}
+45 −29
Original line number Diff line number Diff line
@@ -56,9 +56,32 @@ 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 = {
  packages = stdenvs // {
    inherit (callPackage ./apple_sdk.nix { }) frameworks libs;

    # TODO: this is nice to be private. is it worth the callPackage above?
@@ -73,11 +96,11 @@ let
    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