Merge pull request #3743 from ttuegel/ghc-mod

Fix ghc-modi hanging in emacs
This commit is contained in:
Peter Simons 2014-08-24 11:14:57 +02:00
commit 63e5ed7aef

View File

@ -3,7 +3,7 @@
{ cabal, Cabal, convertible, deepseq, djinnGhc, doctest, emacs
, filepath, ghcPaths, ghcSybUtils, haskellSrcExts, hlint, hspec
, ioChoice, monadControl, monadJournal, mtl, split, syb, text, time
, transformers, transformersBase
, transformers, transformersBase, makeWrapper
}:
cabal.mkDerivation (self: {
@ -22,9 +22,11 @@ cabal.mkDerivation (self: {
ghcSybUtils haskellSrcExts hlint hspec ioChoice monadControl
monadJournal mtl split syb text time transformers transformersBase
];
buildTools = [ emacs ];
buildTools = [ emacs makeWrapper ];
doCheck = false;
configureFlags = "--datasubdir=${self.pname}-${self.version}";
# The method used below to wrap ghc-mod and ghc-modi was borrowed from the
# wrapper for haddock.
postInstall = ''
cd $out/share/$pname-$version
make
@ -32,20 +34,11 @@ cabal.mkDerivation (self: {
cd ..
ensureDir "$out/share/emacs"
mv $pname-$version emacs/site-lisp
mv $out/bin/ghc-mod $out/bin/.ghc-mod-wrapped
cat - > $out/bin/ghc-mod <<EOF
#! ${self.stdenv.shell}
eval exec $out/bin/.ghc-mod-wrapped \$( ${self.ghc.GHCGetPackages} ${self.ghc.version} | tr " " "\n" | tail -n +2 | paste -d " " - - | sed 's/.*/-g "&"/' | tr "\n" " ") "\$@"
EOF
mv $out/bin/ghc-modi $out/bin/.ghc-modi-wrapped
cat - > $out/bin/ghc-modi <<EOF
#! ${self.stdenv.shell}
eval exec $out/bin/.ghc-modi-wrapped \$( ${self.ghc.GHCGetPackages} ${self.ghc.version} | tr " " "\n" | tail -n +2 | paste -d " " - - | sed 's/.*/-g "&"/' | tr "\n" " ") "\$@"
EOF
chmod +x $out/bin/ghc-mod
chmod +x $out/bin/ghc-modi
wrapProgram $out/bin/ghc-mod --add-flags \
"\$(${self.ghc.GHCGetPackages} ${self.ghc.version} \"\$(dirname \$0)\" \"-g -package-db -g\")"
wrapProgram $out/bin/ghc-modi --add-flags \
"\$(${self.ghc.GHCGetPackages} ${self.ghc.version} \"\$(dirname \$0)\" \"-g -package-db -g\")"
'';
meta = {
homepage = "http://www.mew.org/~kazu/proj/ghc-mod/";