summaryrefslogtreecommitdiffstats
path: root/pkgs/top-level/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/top-level/default.nix')
-rw-r--r--pkgs/top-level/default.nix13
1 files changed, 8 insertions, 5 deletions
diff --git a/pkgs/top-level/default.nix b/pkgs/top-level/default.nix
index da7fc1bed34c..dcd443a1c29e 100644
--- a/pkgs/top-level/default.nix
+++ b/pkgs/top-level/default.nix
@@ -22,9 +22,8 @@
# `*Platform`s.
localSystem
-, # The system packages will ultimately be run on. Null if the two should be the
- # same.
- crossSystem ? null
+, # The system packages will ultimately be run on.
+ crossSystem ? localSystem
, # Allow a configuration attribute set to be passed in as an argument.
config ? {}
@@ -32,6 +31,9 @@
, # List of overlays layers used to extend Nixpkgs.
overlays ? []
+, # List of overlays to apply to target packages only.
+ crossOverlays ? []
+
, # A function booting the final package set for a specific standard
# environment. See below for the arguments given to that function, the type of
# list it returns.
@@ -61,7 +63,8 @@ in let
builtins.intersectAttrs { platform = null; } config
// args.localSystem);
- crossSystem = lib.mapNullable lib.systems.elaborate crossSystem0;
+ crossSystem = if crossSystem0 == null then localSystem
+ else lib.systems.elaborate crossSystem0;
# A few packages make a new package set to draw their dependencies from.
# (Currently to get a cross tool chain, or forced-i686 package.) Rather than
@@ -91,7 +94,7 @@ in let
boot = import ../stdenv/booter.nix { inherit lib allPackages; };
stages = stdenvStages {
- inherit lib localSystem crossSystem config overlays;
+ inherit lib localSystem crossSystem config overlays crossOverlays;
};
pkgs = boot stages;