diff options
Diffstat (limited to 'pkgs/development/haskell-modules/generic-builder.nix')
-rw-r--r-- | pkgs/development/haskell-modules/generic-builder.nix | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/pkgs/development/haskell-modules/generic-builder.nix b/pkgs/development/haskell-modules/generic-builder.nix index b871b7d73faa..8b54a19c2b59 100644 --- a/pkgs/development/haskell-modules/generic-builder.nix +++ b/pkgs/development/haskell-modules/generic-builder.nix @@ -56,8 +56,17 @@ 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; + packageDbFlag = if isGhcjs || versionOlder "7.6" ghc.version + then "package-db" + else "package-conf"; + + nativeGhc = if isCross then ghc.bootPkgs.ghc else ghc; + nativeIsCross = nativeGhc.isCross or false; + nativePackageDbFlag = if versionOlder "7.6" nativeGhc.version + then "package-db" + else "package-conf"; newCabalFileUrl = "http://hackage.haskell.org/package/${pname}-${version}/revision/${revision}.cabal"; newCabalFile = fetchurl { @@ -71,9 +80,6 @@ let main = defaultMain ''; - ghc76xOrLater = isGhcjs || stdenv.lib.versionOlder "7.6" ghc.version; - packageDbFlag = if ghc76xOrLater then "package-db" else "package-conf"; - hasActiveLibrary = isLibrary && (enableStaticLibraries || enableSharedLibraries || enableLibraryProfiling); # We cannot enable -j<n> parallelism for libraries because GHC is far more @@ -97,7 +103,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" ]; @@ -125,7 +131,7 @@ let ghcEnv = ghc.withPackages (p: haskellBuildInputs); - setupBuilder = if isGhcjs then "${nativeGhc}/bin/ghc" else ghcCommand; + setupBuilder = if isCross then "${nativeGhc}/bin/ghc" else ghcCommand; setupCommand = "./Setup"; ghcCommand = if isGhcjs then "ghcjs" else "ghc"; ghcCommandCaps = toUpper ghcCommand; |