diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index e38318ada51..66bf20c55c9 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -969,4 +969,21 @@ self: super: { ''; }); + # Byte-compile elisp code for Emacs. + hindent = overrideCabal super.hindent (drv: { + executableToolDepends = drv.executableToolDepends or [] ++ [pkgs.emacs]; + postInstall = '' + local lispdir=( "$out/share/"*"-${self.ghc.name}/${drv.pname}-${drv.version}/elisp" ) + pushd >/dev/null $lispdir + for i in *.el; do + emacs -Q -L . -L ${pkgs.emacs24Packages.haskellMode}/share/emacs/site-lisp \ + --batch --eval "(byte-compile-disable-warning 'cl-functions)" \ + -f batch-byte-compile $i + done + popd >/dev/null + mkdir -p $out/share/emacs + ln -s $lispdir $out/share/emacs/site-lisp + ''; + }); + }