From 05c12f147e932c990f4b026b9efe0b7a1985461e Mon Sep 17 00:00:00 2001 From: John Ericson Date: Sat, 26 Nov 2016 15:13:43 -0800 Subject: [PATCH] top-level: Move default-choosing logic to top-level/platforms.nix This mirrors stdenv/default.nix --- pkgs/top-level/default.nix | 24 +++++++----------------- pkgs/top-level/platforms.nix | 8 ++++++++ 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/pkgs/top-level/default.nix b/pkgs/top-level/default.nix index 9464a8012b31..6b61110f1e73 100644 --- a/pkgs/top-level/default.nix +++ b/pkgs/top-level/default.nix @@ -24,12 +24,11 @@ config ? {} , crossSystem ? null -, platform ? null +, platform ? assert false; null } @ args: let # Rename the function arguments configExpr = config; - platform_ = platform; in let lib = import ../../lib; @@ -42,21 +41,12 @@ in let then configExpr { inherit pkgs; } else configExpr; - # Allow setting the platform in the config file. Otherwise, let's use a reasonable default (pc) - - platformAuto = let - platforms = (import ./platforms.nix); - in - if system == "armv6l-linux" then platforms.raspberrypi - else if system == "armv7l-linux" then platforms.armv7l-hf-multiplatform - else if system == "armv5tel-linux" then platforms.sheevaplug - else if system == "mips64el-linux" then platforms.fuloong2f_n32 - else if system == "x86_64-linux" then platforms.pc64 - else if system == "i686-linux" then platforms.pc32 - else platforms.pcBase; - - platform = if platform_ != null then platform_ - else config.platform or platformAuto; + # Allow setting the platform in the config file. Otherwise, let's use a + # reasonable default. + platform = + args.platform + or (config.platform + or (import ./platforms.nix).selectPlatformBySystem system); # 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 diff --git a/pkgs/top-level/platforms.nix b/pkgs/top-level/platforms.nix index efeae9a9d202..671aaea4491a 100644 --- a/pkgs/top-level/platforms.nix +++ b/pkgs/top-level/platforms.nix @@ -443,4 +443,12 @@ rec { }; }; + selectPlatformBySystem = system: + if system == "armv6l-linux" then raspberrypi + else if system == "armv7l-linux" then armv7l-hf-multiplatform + else if system == "armv5tel-linux" then sheevaplug + else if system == "mips64el-linux" then fuloong2f_n32 + else if system == "x86_64-linux" then pc64 + else if system == "i686-linux" then pc32 + else pcBase; }