nixpkgs/pkgs/development/compilers/ghc/ghc-wrapper/default.nix

34 lines
910 B
Nix
Raw Normal View History

args: with args; with lib;
stdenv.mkDerivation {
inherit suffix name ghc readline ncurses;
buildInputs = (libraries ++ [ghcPkgUtil]);
tags = map (x : sourceWithTagsDerivation (x.passthru.sourceWithTags))
(uniqList { inputList= filter annotatedWithSourceAndTagInfo libraries; } );
phases="installPhase";
installPhase="
ensureDir \$out/bin
if test -n \"\$ghcPackagedLibs\"; then
g=:\$(echo \$ghc/lib/ghc-*/package.conf)
fi
for a in ghc ghci ghc-pkg; do
app=$(ls -al $ghc/bin/$a | sed -n 's%.*-> \\(.*\\)%\\1%p');
cat > \"\$out/bin/\$a$suffix\" << EOF
#!`type -f sh | gawk '{ print $3; }'`
export LIBRARY_PATH=\$readline/lib:\$ncurses/lib
GHC_PACKAGE_PATH=\${GHC_PACKAGE_PATH}\${g} \$ghc/bin/$app \"\\\$@\"
EOF
chmod +x \"\$out/bin/\$a$suffix\"
done
ensureDir \$out/src
for i in \$tags; do
ln -s \$i/src/* \$out/src
done
";
}