diff options
author | Leon Isenberg <ljli@users.noreply.github.com> | 2017-03-25 05:23:01 +0100 |
---|---|---|
committer | Peter Simons <simons@cryp.to> | 2017-03-29 20:30:28 +0200 |
commit | 2553ceb9820761e3c22c50db74513d5a0e1ba6d1 (patch) | |
tree | 1c21d00b4a469dbf040ea34ba761d7df994d1450 /pkgs/development/haskell-modules/generic-builder.nix | |
parent | 80a52e22b3b017610f0d710f6fa257b0b601ebc5 (diff) | |
download | nixlib-2553ceb9820761e3c22c50db74513d5a0e1ba6d1.tar nixlib-2553ceb9820761e3c22c50db74513d5a0e1ba6d1.tar.gz nixlib-2553ceb9820761e3c22c50db74513d5a0e1ba6d1.tar.bz2 nixlib-2553ceb9820761e3c22c50db74513d5a0e1ba6d1.tar.lz nixlib-2553ceb9820761e3c22c50db74513d5a0e1ba6d1.tar.xz nixlib-2553ceb9820761e3c22c50db74513d5a0e1ba6d1.tar.zst nixlib-2553ceb9820761e3c22c50db74513d5a0e1ba6d1.zip |
haskell: use GHCJS to build Setup.hs for GHCJS packages
Closes https://github.com/NixOS/nixpkgs/pull/23614.
Diffstat (limited to 'pkgs/development/haskell-modules/generic-builder.nix')
-rw-r--r-- | pkgs/development/haskell-modules/generic-builder.nix | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/pkgs/development/haskell-modules/generic-builder.nix b/pkgs/development/haskell-modules/generic-builder.nix index 42678e342be4..1f5d97941ce5 100644 --- a/pkgs/development/haskell-modules/generic-builder.nix +++ b/pkgs/development/haskell-modules/generic-builder.nix @@ -1,5 +1,5 @@ { stdenv, fetchurl, ghc, pkgconfig, glibcLocales, coreutils, gnugrep, gnused -, jailbreak-cabal, hscolour, cpphs +, jailbreak-cabal, hscolour, cpphs, nodejs }: let isCross = (ghc.cross or null) != null; in { pname @@ -133,6 +133,7 @@ let setupCompileFlags = [ (optionalString (!coreSetup) "-${packageDbFlag}=$packageConfDir") + (optionalString isGhcjs "-build-runner") (optionalString (isGhcjs || isHaLVM || versionOlder "7.8" ghc.version) "-j$NIX_BUILD_CORES") # https://github.com/haskell/cabal/issues/2398 (optionalString (versionOlder "7.10" ghc.version && !isHaLVM) "-threaded") @@ -157,7 +158,7 @@ let ghcEnv = ghc.withPackages (p: haskellBuildInputs); - setupBuilder = if isCross || 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"; crossPrefix = if (ghc.cross or null) != null then "${ghc.cross.config}-" else ""; @@ -294,6 +295,14 @@ stdenv.mkDerivation ({ local pkgId=$( ${gnused}/bin/sed -n -e 's|^id: ||p' $packageConfFile ) mv $packageConfFile $packageConfDir/$pkgId.conf ''} + ${optionalString isGhcjs '' + for exeDir in "$out/bin/"*.jsexe; do + exe="''${exeDir%.jsexe}" + printf '%s\n' '#!${nodejs}/bin/node' > "$exe" + cat "$exeDir/all.js" >> "$exe" + chmod +x "$exe" + done + ''} ${optionalString doCoverage "mkdir -p $out/share && cp -r dist/hpc $out/share"} ${optionalString (enableSharedExecutables && isExecutable && !isGhcjs && stdenv.isDarwin && stdenv.lib.versionOlder ghc.version "7.10") '' for exe in "$out/bin/"* ; do |