diff options
author | Charles Strahan <charles.c.strahan@gmail.com> | 2015-05-06 15:56:02 -0400 |
---|---|---|
committer | Charles Strahan <charles.c.strahan@gmail.com> | 2015-05-08 11:33:44 -0400 |
commit | 929dc4199a57b5d21eb72077f735eb33c4c7b09b (patch) | |
tree | 2d5ebe677c30872b8cc9a26a16498ea727789d6c /pkgs/development/haskell-modules/generic-builder.nix | |
parent | 9cb6ebe15ee0a272fe648f8806edbccddbb5c6c1 (diff) | |
download | nixlib-929dc4199a57b5d21eb72077f735eb33c4c7b09b.tar nixlib-929dc4199a57b5d21eb72077f735eb33c4c7b09b.tar.gz nixlib-929dc4199a57b5d21eb72077f735eb33c4c7b09b.tar.bz2 nixlib-929dc4199a57b5d21eb72077f735eb33c4c7b09b.tar.lz nixlib-929dc4199a57b5d21eb72077f735eb33c4c7b09b.tar.xz nixlib-929dc4199a57b5d21eb72077f735eb33c4c7b09b.tar.zst nixlib-929dc4199a57b5d21eb72077f735eb33c4c7b09b.zip |
ghcjs: properly wrap binaries in environment
This also: 1 Builds Setup.hs with ghcjs, which (among other things) defines __GHCJS__ and ghcjs_HOST_OS during pre-processing. 2 Fixes ghc-paths to point at ghcjs and use NIX_GHCJS_* env-vars. 3 Boots ghcjs into $prefix/lib/$compiler.
Diffstat (limited to 'pkgs/development/haskell-modules/generic-builder.nix')
-rw-r--r-- | pkgs/development/haskell-modules/generic-builder.nix | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/pkgs/development/haskell-modules/generic-builder.nix b/pkgs/development/haskell-modules/generic-builder.nix index 158940348190..28fcf45bfa20 100644 --- a/pkgs/development/haskell-modules/generic-builder.nix +++ b/pkgs/development/haskell-modules/generic-builder.nix @@ -114,7 +114,7 @@ let ghcEnv = ghc.withPackages (p: haskellBuildInputs); - setupBuilder = if isGhcjs then "${ghc.nativeGhc}/bin/ghc" else "ghc"; + setupCommand = if isGhcjs then "${ghc.nodejs}/bin/node ./Setup.jsexe/all.js" else "./Setup"; ghcCommand = if isGhcjs then "ghcjs" else "ghc"; in @@ -186,7 +186,7 @@ stdenv.mkDerivation ({ done echo setupCompileFlags: $setupCompileFlags - ${setupBuilder} $setupCompileFlags --make -o Setup -odir $TMPDIR -hidir $TMPDIR $i + ${ghcCommand} $setupCompileFlags --make -o Setup -odir $TMPDIR -hidir $TMPDIR $i runHook postCompileBuildDriver ''; @@ -197,7 +197,7 @@ stdenv.mkDerivation ({ unset GHC_PACKAGE_PATH # Cabal complains if this variable is set during configure. echo configureFlags: $configureFlags - ./Setup configure $configureFlags 2>&1 | ${coreutils}/bin/tee "$NIX_BUILD_TOP/cabal-configure.log" + ${setupCommand} configure $configureFlags 2>&1 | ${coreutils}/bin/tee "$NIX_BUILD_TOP/cabal-configure.log" if ${gnugrep}/bin/egrep -q '^Warning:.*depends on multiple versions' "$NIX_BUILD_TOP/cabal-configure.log"; then echo >&2 "*** abort because of serious configure-time warning from Cabal" exit 1 @@ -210,20 +210,20 @@ stdenv.mkDerivation ({ buildPhase = '' runHook preBuild - ./Setup build ${buildTarget} + ${setupCommand} build ${buildTarget} runHook postBuild ''; checkPhase = '' runHook preCheck - ./Setup test ${testTarget} + ${setupCommand} test ${testTarget} runHook postCheck ''; haddockPhase = '' runHook preHaddock ${optionalString (doHaddock && hasActiveLibrary) '' - ./Setup haddock --html \ + ${setupCommand} haddock --html \ ${optionalString doHoogle "--hoogle"} \ ${optionalString (hasActiveLibrary && hyperlinkSource) "--hyperlink-source"} ''} @@ -233,12 +233,12 @@ stdenv.mkDerivation ({ installPhase = '' runHook preInstall - ${if !hasActiveLibrary then "./Setup install" else '' - ./Setup copy + ${if !hasActiveLibrary then "${setupCommand} install" else '' + ${setupCommand} copy local packageConfDir="$out/lib/${ghc.name}/package.conf.d" local packageConfFile="$packageConfDir/${pname}-${version}.conf" mkdir -p "$packageConfDir" - ./Setup register --gen-pkg-config=$packageConfFile + ${setupCommand} register --gen-pkg-config=$packageConfFile local pkgId=$( ${gnused}/bin/sed -n -e 's|^id: ||p' $packageConfFile ) mv $packageConfFile $packageConfDir/$pkgId.conf ''} |