mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-11-11 04:02:55 +03:00
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
|
||||
|
||||
To store you plugins in Vim packages (the native vim plugin manager, see `:help packages`) the following example can be used:
|
||||
|
@ -1,8 +1,9 @@
|
||||
{ stdenv, fetchFromGitHub, cmake, doxygen, makeWrapper
|
||||
, msgpack, neovim, pythonPackages, qtbase }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "neovim-qt-${version}";
|
||||
let
|
||||
unwrapped = stdenv.mkDerivation rec {
|
||||
pname = "neovim-qt-unwrapped";
|
||||
version = "0.2.11";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
@ -16,42 +17,25 @@ stdenv.mkDerivation rec {
|
||||
"-DUSE_SYSTEM_MSGPACK=1"
|
||||
];
|
||||
|
||||
buildInputs = with pythonPackages; [
|
||||
neovim qtbase msgpack
|
||||
buildInputs = [
|
||||
neovim.unwrapped # only used to generate help tags at build time
|
||||
qtbase
|
||||
] ++ (with pythonPackages; [
|
||||
jinja2 msgpack python
|
||||
jinja2 python msgpack
|
||||
]);
|
||||
|
||||
nativeBuildInputs = [ cmake doxygen makeWrapper ];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
preConfigure = ''
|
||||
# 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'
|
||||
preCheck = ''
|
||||
# The GUI tests require a running X server, disable them
|
||||
sed -i ../test/CMakeLists.txt \
|
||||
-e '/^add_xtest_gui/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;
|
||||
@ -59,4 +43,32 @@ stdenv.mkDerivation rec {
|
||||
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
|
||||
|
||||
chmod -R a+w "$out/Applications/nvim-qt.app/Contents/MacOS"
|
||||
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"
|
||||
'';
|
||||
|
||||
preferLocalBuild = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
makeWrapper
|
||||
];
|
||||
|
||||
passthru = {
|
||||
inherit unwrapped;
|
||||
};
|
||||
|
||||
inherit (unwrapped) meta;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user