From 51b66ed4d918a795af55ae50de05fd0cb4b19a38 Mon Sep 17 00:00:00 2001 From: John Ericson Date: Fri, 19 Feb 2016 08:40:33 -0800 Subject: [PATCH] haskell: Add notion of cross compiler and define nativeGhc with it Tested to not change hashes --- pkgs/development/compilers/ghcjs/default.nix | 2 +- pkgs/development/haskell-modules/generic-builder.nix | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/pkgs/development/compilers/ghcjs/default.nix b/pkgs/development/compilers/ghcjs/default.nix index 3aca5f23919..722c3eab10a 100644 --- a/pkgs/development/compilers/ghcjs/default.nix +++ b/pkgs/development/compilers/ghcjs/default.nix @@ -118,8 +118,8 @@ in mkDerivation (rec { ''; passthru = { inherit bootPkgs; + isCross = true; isGhcjs = true; - nativeGhc = ghc; inherit nodejs ghcjsBoot; }; diff --git a/pkgs/development/haskell-modules/generic-builder.nix b/pkgs/development/haskell-modules/generic-builder.nix index b871b7d73fa..50efcc27fe6 100644 --- a/pkgs/development/haskell-modules/generic-builder.nix +++ b/pkgs/development/haskell-modules/generic-builder.nix @@ -56,8 +56,9 @@ let inherit (stdenv.lib) optional optionals optionalString versionOlder concatStringsSep enableFeature optionalAttrs toUpper; + isCross = ghc.isCross or false; isGhcjs = ghc.isGhcjs or false; - nativeGhc = if isGhcjs then ghc.nativeGhc else ghc; + nativeGhc = if isCross then ghc.bootPkgs.ghc else ghc; newCabalFileUrl = "http://hackage.haskell.org/package/${pname}-${version}/revision/${revision}.cabal"; newCabalFile = fetchurl { @@ -97,7 +98,7 @@ let (optionalString (isGhcjs || versionOlder "7.4" ghc.version) (enableFeature enableSharedExecutables "executable-dynamic")) (optionalString (isGhcjs || versionOlder "7" ghc.version) (enableFeature doCheck "tests")) ] ++ optionals isGhcjs [ - "--with-hsc2hs=${ghc.nativeGhc}/bin/hsc2hs" + "--with-hsc2hs=${nativeGhc}/bin/hsc2hs" "--ghcjs" ];