mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-06-09 19:13:26 +03:00
Merge pull request #245957 from amjoseph-nixpkgs/pr/lib/customization/makeScopeWithSplicing2
This commit is contained in:
commit
bde196dde9
15 changed files with 81 additions and 80 deletions
|
@ -278,9 +278,24 @@ rec {
|
|||
};
|
||||
in self;
|
||||
|
||||
/* backward compatibility with old uncurried form; deprecated */
|
||||
makeScopeWithSplicing =
|
||||
splicePackages: newScope: otherSplices: keep: extra: f:
|
||||
makeScopeWithSplicing' {
|
||||
inherit splicePackages newScope otherSplices keep extra f;
|
||||
};
|
||||
|
||||
/* Like the above, but aims to support cross compilation. It's still ugly, but
|
||||
hopefully it helps a little bit. */
|
||||
makeScopeWithSplicing = splicePackages: newScope: otherSplices: keep: extra: f:
|
||||
makeScopeWithSplicing' =
|
||||
{ splicePackages
|
||||
, newScope
|
||||
}:
|
||||
{ otherSplices
|
||||
, keep ? (_self: {})
|
||||
, extra ? (_spliced0: {})
|
||||
, f
|
||||
}:
|
||||
let
|
||||
spliced0 = splicePackages {
|
||||
pkgsBuildBuild = otherSplices.selfBuildBuild;
|
||||
|
@ -296,13 +311,11 @@ rec {
|
|||
callPackage = newScope spliced; # == self.newScope {};
|
||||
# N.B. the other stages of the package set spliced in are *not*
|
||||
# overridden.
|
||||
overrideScope = g: makeScopeWithSplicing
|
||||
splicePackages
|
||||
newScope
|
||||
otherSplices
|
||||
keep
|
||||
extra
|
||||
(lib.fixedPoints.extends g f);
|
||||
overrideScope = g: (makeScopeWithSplicing'
|
||||
{ inherit splicePackages newScope; }
|
||||
{ inherit otherSplices keep extra;
|
||||
f = lib.fixedPoints.extends g f;
|
||||
});
|
||||
packages = f;
|
||||
};
|
||||
in self;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue