mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-02-27 06:25:23 +00:00
emacsPackages.vterm: fix dynamic library and autoloaders
We need both the .so as well as the proper autoloaders that are generated when we build an emacs package, so we cannot use the normal stdenv.mkDerivation but have to inject the building of the libraries instead. Also, use the proper libvterm-neovim we have in nixpkgs instead of vendoring it.
This commit is contained in:
parent
1c40ee6fc4
commit
4487809902
@ -385,52 +385,22 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac
|
||||
(attrs.nativeBuildInputs or []) ++ [ external.git ];
|
||||
});
|
||||
|
||||
vterm = let
|
||||
emacsSources = pkgs.stdenv.mkDerivation {
|
||||
name = self.emacs.name + "-sources";
|
||||
src = self.emacs.src;
|
||||
|
||||
dontConfigure = true;
|
||||
dontBuild = true;
|
||||
doCheck = false;
|
||||
fixupPhase = ":";
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out
|
||||
cp -a * $out
|
||||
'';
|
||||
|
||||
};
|
||||
|
||||
libvterm = pkgs.libvterm-neovim.overrideAttrs(old: rec {
|
||||
pname = "libvterm-neovim";
|
||||
version = "2019-04-27";
|
||||
name = pname + "-" + version;
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "neovim";
|
||||
repo = "libvterm";
|
||||
rev = "89675ffdda615ffc3f29d1c47a933f4f44183364";
|
||||
sha256 = "0l9ixbj516vl41v78fi302ws655xawl7s94gmx1kb3fmfgamqisy";
|
||||
};
|
||||
});
|
||||
|
||||
in pkgs.stdenv.mkDerivation {
|
||||
inherit (super.vterm) name version src;
|
||||
|
||||
nativeBuildInputs = [ pkgs.cmake ];
|
||||
buildInputs = [ self.emacs libvterm ];
|
||||
|
||||
vterm = super.vterm.overrideAttrs(old: {
|
||||
buildInputs = old.buildInputs ++ [ self.emacs pkgs.cmake pkgs.libvterm-neovim ];
|
||||
cmakeFlags = [
|
||||
"-DEMACS_SOURCE=${emacsSources}"
|
||||
"-DUSE_SYSTEM_LIBVTERM=True"
|
||||
"-DEMACS_SOURCE=${self.emacs.src}"
|
||||
"-DUSE_SYSTEM_LIBVTERM=ON"
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
install -d $out/share/emacs/site-lisp
|
||||
install ../*.el $out/share/emacs/site-lisp
|
||||
install ../*.so $out/share/emacs/site-lisp
|
||||
# we need the proper out directory to exist, so we do this in the
|
||||
# postInstall instead of postBuild
|
||||
postInstall = ''
|
||||
pushd source/build >/dev/null
|
||||
make
|
||||
install -m444 -t $out/share/emacs/site-lisp/elpa/vterm-** ../*.so
|
||||
popd > /dev/null
|
||||
rm -rf $out/share/emacs/site-lisp/elpa/vterm-**/{CMake*,build,*.c,*.h}
|
||||
'';
|
||||
};
|
||||
});
|
||||
# Legacy alias
|
||||
emacs-libvterm = unstable.vterm;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user