darwin stdenv: Float `persistentN` bindings into per-stage `let`s
This commit is contained in:
parent
19a5e00985
commit
61d241f405
|
@ -165,19 +165,20 @@ in rec {
|
||||||
extraBuildInputs = [];
|
extraBuildInputs = [];
|
||||||
};
|
};
|
||||||
|
|
||||||
persistent0 = _: _: _: {};
|
stage1 = prevStage: let
|
||||||
|
persistent = _: _: {};
|
||||||
stage1 = prevStage: with prevStage; stageFun 1 prevStage {
|
in with prevStage; stageFun 1 prevStage {
|
||||||
extraPreHook = "export NIX_CFLAGS_COMPILE+=\" -F${bootstrapTools}/Library/Frameworks\"";
|
extraPreHook = "export NIX_CFLAGS_COMPILE+=\" -F${bootstrapTools}/Library/Frameworks\"";
|
||||||
extraBuildInputs = [ pkgs.libcxx ];
|
extraBuildInputs = [ pkgs.libcxx ];
|
||||||
|
|
||||||
allowedRequisites =
|
allowedRequisites =
|
||||||
[ bootstrapTools ] ++ (with pkgs; [ libcxx libcxxabi ]) ++ [ pkgs.darwin.Libsystem ];
|
[ bootstrapTools ] ++ (with pkgs; [ libcxx libcxxabi ]) ++ [ pkgs.darwin.Libsystem ];
|
||||||
|
|
||||||
overrides = persistent0 prevStage;
|
overrides = persistent;
|
||||||
};
|
};
|
||||||
|
|
||||||
persistent1 = prevStage: self: super: with prevStage; {
|
stage2 = prevStage: let
|
||||||
|
persistent = self: super: with prevStage; {
|
||||||
inherit
|
inherit
|
||||||
zlib patchutils m4 scons flex perl bison unifdef unzip openssl python
|
zlib patchutils m4 scons flex perl bison unifdef unzip openssl python
|
||||||
libxml2 gettext sharutils gmp libarchive ncurses pkg-config libedit groff
|
libxml2 gettext sharutils gmp libarchive ncurses pkg-config libedit groff
|
||||||
|
@ -189,8 +190,7 @@ in rec {
|
||||||
dyld Libsystem xnu configd ICU libdispatch libclosure launchd;
|
dyld Libsystem xnu configd ICU libdispatch libclosure launchd;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
in with prevStage; stageFun 2 prevStage {
|
||||||
stage2 = prevStage: with prevStage; stageFun 2 prevStage {
|
|
||||||
extraPreHook = ''
|
extraPreHook = ''
|
||||||
export PATH_LOCALE=${pkgs.darwin.locale}/share/locale
|
export PATH_LOCALE=${pkgs.darwin.locale}/share/locale
|
||||||
'';
|
'';
|
||||||
|
@ -202,10 +202,11 @@ in rec {
|
||||||
(with pkgs; [ xz.bin xz.out libcxx libcxxabi ]) ++
|
(with pkgs; [ xz.bin xz.out libcxx libcxxabi ]) ++
|
||||||
(with pkgs.darwin; [ dyld Libsystem CF ICU locale ]);
|
(with pkgs.darwin; [ dyld Libsystem CF ICU locale ]);
|
||||||
|
|
||||||
overrides = persistent1 prevStage;
|
overrides = persistent;
|
||||||
};
|
};
|
||||||
|
|
||||||
persistent2 = prevStage: self: super: with prevStage; {
|
stage3 = prevStage: let
|
||||||
|
persistent = self: super: with prevStage; {
|
||||||
inherit
|
inherit
|
||||||
patchutils m4 scons flex perl bison unifdef unzip openssl python
|
patchutils m4 scons flex perl bison unifdef unzip openssl python
|
||||||
gettext sharutils libarchive pkg-config groff bash subversion
|
gettext sharutils libarchive pkg-config groff bash subversion
|
||||||
|
@ -218,8 +219,7 @@ in rec {
|
||||||
dyld Libsystem xnu configd libdispatch libclosure launchd libiconv locale;
|
dyld Libsystem xnu configd libdispatch libclosure launchd libiconv locale;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
in with prevStage; stageFun 3 prevStage {
|
||||||
stage3 = prevStage: with prevStage; stageFun 3 prevStage {
|
|
||||||
shell = "${pkgs.bash}/bin/bash";
|
shell = "${pkgs.bash}/bin/bash";
|
||||||
|
|
||||||
# We have a valid shell here (this one has no bootstrap-tools runtime deps) so stageFun
|
# We have a valid shell here (this one has no bootstrap-tools runtime deps) so stageFun
|
||||||
|
@ -238,10 +238,11 @@ in rec {
|
||||||
(with pkgs; [ xz.bin xz.out bash libcxx libcxxabi ]) ++
|
(with pkgs; [ xz.bin xz.out bash libcxx libcxxabi ]) ++
|
||||||
(with pkgs.darwin; [ dyld ICU Libsystem locale ]);
|
(with pkgs.darwin; [ dyld ICU Libsystem locale ]);
|
||||||
|
|
||||||
overrides = persistent2 prevStage;
|
overrides = persistent;
|
||||||
};
|
};
|
||||||
|
|
||||||
persistent3 = prevStage: self: super: with prevStage; {
|
stage4 = prevStage: let
|
||||||
|
persistent = self: super: with prevStage; {
|
||||||
inherit
|
inherit
|
||||||
gnumake gzip gnused bzip2 gawk ed xz patch bash
|
gnumake gzip gnused bzip2 gawk ed xz patch bash
|
||||||
libcxxabi libcxx ncurses libffi zlib gmp pcre gnugrep
|
libcxxabi libcxx ncurses libffi zlib gmp pcre gnugrep
|
||||||
|
@ -257,17 +258,18 @@ in rec {
|
||||||
inherit (darwin) dyld Libsystem libiconv locale;
|
inherit (darwin) dyld Libsystem libiconv locale;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
in with prevStage; stageFun 4 prevStage {
|
||||||
stage4 = prevStage: with prevStage; stageFun 4 prevStage {
|
|
||||||
shell = "${pkgs.bash}/bin/bash";
|
shell = "${pkgs.bash}/bin/bash";
|
||||||
extraBuildInputs = with pkgs; [ xz darwin.CF libcxx pkgs.bash ];
|
extraBuildInputs = with pkgs; [ xz darwin.CF libcxx pkgs.bash ];
|
||||||
extraPreHook = ''
|
extraPreHook = ''
|
||||||
export PATH_LOCALE=${pkgs.darwin.locale}/share/locale
|
export PATH_LOCALE=${pkgs.darwin.locale}/share/locale
|
||||||
'';
|
'';
|
||||||
overrides = persistent3 prevStage;
|
overrides = persistent;
|
||||||
};
|
};
|
||||||
|
|
||||||
persistent4 = prevStage: self: super: with prevStage; {
|
stdenvDarwin = prevStage: let
|
||||||
|
pkgs = prevStage;
|
||||||
|
persistent = self: super: with prevStage; {
|
||||||
inherit
|
inherit
|
||||||
gnumake gzip gnused bzip2 gawk ed xz patch bash
|
gnumake gzip gnused bzip2 gawk ed xz patch bash
|
||||||
libcxxabi libcxx ncurses libffi zlib llvm gmp pcre gnugrep
|
libcxxabi libcxx ncurses libffi zlib llvm gmp pcre gnugrep
|
||||||
|
@ -284,8 +286,7 @@ in rec {
|
||||||
# Need to get rid of these when cross-compiling.
|
# Need to get rid of these when cross-compiling.
|
||||||
inherit binutils binutils-raw;
|
inherit binutils binutils-raw;
|
||||||
};
|
};
|
||||||
|
in import ../generic rec {
|
||||||
stdenvDarwin = prevStage: let pkgs = prevStage; in import ../generic rec {
|
|
||||||
inherit config;
|
inherit config;
|
||||||
inherit (pkgs.stdenv) fetchurlBoot;
|
inherit (pkgs.stdenv) fetchurlBoot;
|
||||||
|
|
||||||
|
@ -344,9 +345,9 @@ in rec {
|
||||||
]);
|
]);
|
||||||
|
|
||||||
overrides = self: super:
|
overrides = self: super:
|
||||||
let persistent = persistent4 prevStage self super; in persistent // {
|
let persistent' = persistent self super; in persistent' // {
|
||||||
clang = cc;
|
clang = cc;
|
||||||
llvmPackages = persistent.llvmPackages // { clang = cc; };
|
llvmPackages = persistent'.llvmPackages // { clang = cc; };
|
||||||
inherit cc;
|
inherit cc;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue