forked from mirrors/nixpkgs
Merge pull request #53447 from timokau/neovim-qt-wrapper
neovim-qt: wrap in separate derivation
This commit is contained in:
commit
15c8362c14
|
@ -46,6 +46,21 @@ neovim.override {
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
If you want to use `neovim-qt` as a graphical editor, you can configure it by overriding neovim in an overlay
|
||||||
|
or passing it an overridden neovimn:
|
||||||
|
|
||||||
|
```
|
||||||
|
neovim-qt.override {
|
||||||
|
neovim = neovim.override {
|
||||||
|
configure = {
|
||||||
|
customRC = ''
|
||||||
|
# your custom configuration
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
## Managing plugins with Vim packages
|
## Managing plugins with Vim packages
|
||||||
|
|
||||||
To store you plugins in Vim packages (the native vim plugin manager, see `:help packages`) the following example can be used:
|
To store you plugins in Vim packages (the native vim plugin manager, see `:help packages`) the following example can be used:
|
||||||
|
|
|
@ -1,62 +1,74 @@
|
||||||
{ stdenv, fetchFromGitHub, cmake, doxygen, makeWrapper
|
{ stdenv, fetchFromGitHub, cmake, doxygen, makeWrapper
|
||||||
, msgpack, neovim, pythonPackages, qtbase }:
|
, msgpack, neovim, pythonPackages, qtbase }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
let
|
||||||
name = "neovim-qt-${version}";
|
unwrapped = stdenv.mkDerivation rec {
|
||||||
version = "0.2.11";
|
pname = "neovim-qt-unwrapped";
|
||||||
|
version = "0.2.11";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "equalsraf";
|
owner = "equalsraf";
|
||||||
repo = "neovim-qt";
|
repo = "neovim-qt";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "0pc1adxc89p2rdvb6nxyqr9sjzqz9zw2dg7a4ardxsl3a8jga1wh";
|
sha256 = "0pc1adxc89p2rdvb6nxyqr9sjzqz9zw2dg7a4ardxsl3a8jga1wh";
|
||||||
|
};
|
||||||
|
|
||||||
|
cmakeFlags = [
|
||||||
|
"-DUSE_SYSTEM_MSGPACK=1"
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
neovim.unwrapped # only used to generate help tags at build time
|
||||||
|
qtbase
|
||||||
|
] ++ (with pythonPackages; [
|
||||||
|
jinja2 python msgpack
|
||||||
|
]);
|
||||||
|
|
||||||
|
nativeBuildInputs = [ cmake doxygen makeWrapper ];
|
||||||
|
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
preCheck = ''
|
||||||
|
# The GUI tests require a running X server, disable them
|
||||||
|
sed -i ../test/CMakeLists.txt \
|
||||||
|
-e '/^add_xtest_gui/d'
|
||||||
|
'';
|
||||||
|
|
||||||
|
doCheck = true;
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "Neovim client library and GUI, in Qt5";
|
||||||
|
license = licenses.isc;
|
||||||
|
maintainers = with maintainers; [ peterhoeg ];
|
||||||
|
inherit (neovim.meta) platforms;
|
||||||
|
inherit version;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
in
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
pname = "neovim-qt";
|
||||||
|
version = unwrapped.version;
|
||||||
|
buildCommand = if stdenv.isDarwin then ''
|
||||||
|
mkdir -p $out/Applications
|
||||||
|
cp -r ${unwrapped}/bin/nvim-qt.app $out/Applications
|
||||||
|
|
||||||
cmakeFlags = [
|
chmod -R a+w "$out/Applications/nvim-qt.app/Contents/MacOS"
|
||||||
"-DUSE_SYSTEM_MSGPACK=1"
|
wrapProgram "$out/Applications/nvim-qt.app/Contents/MacOS/nvim-qt" \
|
||||||
];
|
--prefix PATH : "${neovim}/bin"
|
||||||
|
'' else ''
|
||||||
|
makeWrapper '${unwrapped}/bin/nvim-qt' "$out/bin/nvim-qt" \
|
||||||
|
--prefix PATH : "${neovim}/bin"
|
||||||
|
'';
|
||||||
|
|
||||||
buildInputs = with pythonPackages; [
|
preferLocalBuild = true;
|
||||||
neovim qtbase msgpack
|
|
||||||
] ++ (with pythonPackages; [
|
|
||||||
jinja2 msgpack python
|
|
||||||
]);
|
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake doxygen makeWrapper ];
|
nativeBuildInputs = [
|
||||||
|
makeWrapper
|
||||||
|
];
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
passthru = {
|
||||||
|
inherit unwrapped;
|
||||||
|
};
|
||||||
|
|
||||||
preConfigure = ''
|
inherit (unwrapped) meta;
|
||||||
# we rip out a number of tests that fail in the build env
|
}
|
||||||
# the GUI tests will never work but the others should - they did before neovim 0.2.0
|
|
||||||
# was released
|
|
||||||
sed -i test/CMakeLists.txt \
|
|
||||||
-e '/^add_xtest_gui/d' \
|
|
||||||
-e '/tst_neovimobject/d' \
|
|
||||||
-e '/tst_neovimconnector/d' \
|
|
||||||
-e '/tst_callallmethods/d' \
|
|
||||||
-e '/tst_encoding/d'
|
|
||||||
'';
|
|
||||||
|
|
||||||
doCheck = true;
|
|
||||||
|
|
||||||
postInstall = if stdenv.isDarwin then ''
|
|
||||||
mkdir -p $out/Applications
|
|
||||||
mv $out/bin/nvim-qt.app $out/Applications
|
|
||||||
rmdir $out/bin || :
|
|
||||||
|
|
||||||
wrapProgram "$out/Applications/nvim-qt.app/Contents/MacOS/nvim-qt" \
|
|
||||||
--prefix PATH : "${neovim}/bin"
|
|
||||||
'' else ''
|
|
||||||
wrapProgram "$out/bin/nvim-qt" \
|
|
||||||
--prefix PATH : "${neovim}/bin"
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
|
||||||
description = "Neovim client library and GUI, in Qt5";
|
|
||||||
license = licenses.isc;
|
|
||||||
maintainers = with maintainers; [ peterhoeg ];
|
|
||||||
inherit (neovim.meta) platforms;
|
|
||||||
inherit version;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in a new issue