diff --git a/pkgs/applications/editors/neovim/neovim-qt.nix b/pkgs/applications/editors/neovim/neovim-qt.nix new file mode 100644 index 00000000000..505fd41f797 --- /dev/null +++ b/pkgs/applications/editors/neovim/neovim-qt.nix @@ -0,0 +1,43 @@ +{ lib, stdenv, mkDerivation, fetchFromGitHub, cmake, doxygen, makeWrapper +, msgpack, neovim, pythonPackages, qtbase }: + +mkDerivation rec { + pname = "neovim-qt-unwrapped"; + version = "0.2.16.1"; + + src = fetchFromGitHub { + owner = "equalsraf"; + repo = "neovim-qt"; + rev = "v${version}"; + sha256 = "0x5brrim3f21bzdmh6wyrhrislwpx1248wbx56csvic6v78hzqny"; + }; + + cmakeFlags = [ + "-DUSE_SYSTEM_MSGPACK=1" + "-DENABLE_TESTS=0" # tests fail because xcb platform plugin is not found + ]; + + buildInputs = [ + neovim.unwrapped # only used to generate help tags at build time + qtbase + ] ++ (with pythonPackages; [ + jinja2 python msgpack + ]); + + nativeBuildInputs = [ cmake doxygen ]; + + 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 lib; { + description = "Neovim client library and GUI, in Qt5"; + homepage = "https://github.com/equalsraf/neovim-qt"; + license = licenses.isc; + maintainers = with maintainers; [ peterhoeg ]; + inherit (neovim.meta) platforms; + }; +} diff --git a/pkgs/applications/editors/neovim/qt.nix b/pkgs/applications/editors/neovim/qt.nix index 8eaa9204c43..5210b6b67c8 100644 --- a/pkgs/applications/editors/neovim/qt.nix +++ b/pkgs/applications/editors/neovim/qt.nix @@ -1,79 +1,38 @@ { lib, stdenv, mkDerivation, fetchFromGitHub, cmake, doxygen, makeWrapper -, msgpack, neovim, pythonPackages, qtbase }: +, msgpack, neovim, pythonPackages, qtbase, neovim-qt-unwrapped }: let - unwrapped = mkDerivation rec { - pname = "neovim-qt-unwrapped"; - version = "0.2.16.1"; - - src = fetchFromGitHub { - owner = "equalsraf"; - repo = "neovim-qt"; - rev = "v${version}"; - sha256 = "0x5brrim3f21bzdmh6wyrhrislwpx1248wbx56csvic6v78hzqny"; - }; - - cmakeFlags = [ - "-DUSE_SYSTEM_MSGPACK=1" - "-DENABLE_TESTS=0" # tests fail because xcb platform plugin is not found - ]; - - buildInputs = [ - neovim.unwrapped # only used to generate help tags at build time - qtbase - ] ++ (with pythonPackages; [ - jinja2 python msgpack - ]); - - nativeBuildInputs = [ cmake doxygen ]; - - 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 lib; { - description = "Neovim client library and GUI, in Qt5"; - homepage = "https://github.com/equalsraf/neovim-qt"; - license = licenses.isc; - maintainers = with maintainers; [ peterhoeg ]; - inherit (neovim.meta) platforms; - inherit version; - }; - }; + unwrapped = neovim-qt-unwrapped; 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 +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" + 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 - # link .desktop file - mkdir -p "$out/share/pixmaps" - ln -s '${unwrapped}/share/applications' "$out/share/applications" - ln -s '${unwrapped}/share/pixmaps/nvim-qt.png' "$out/share/pixmaps/nvim-qt.png" - ''; + # link .desktop file + mkdir -p $out/share/pixmaps + ln -s ${unwrapped}/share/applications $out/share/applications + ln -s ${unwrapped}/share/pixmaps/nvim-qt.png $out/share/pixmaps/nvim-qt.png + ''; - preferLocalBuild = true; + preferLocalBuild = true; - nativeBuildInputs = [ - makeWrapper - ]; + nativeBuildInputs = [ + makeWrapper + ]; - passthru = { - inherit unwrapped; - }; + passthru = { + inherit unwrapped; + }; - inherit (unwrapped) meta; - } + inherit (unwrapped) meta; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ac8dfdb4126..9ce5e6fe8c8 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -25959,6 +25959,7 @@ in neovimUtils = callPackage ../applications/editors/neovim/utils.nix { }; neovim = wrapNeovim neovim-unwrapped { }; + neovim-qt-unwrapped = libsForQt5.callPackage ../applications/editors/neovim/neovim-qt.nix { }; neovim-qt = libsForQt5.callPackage ../applications/editors/neovim/qt.nix { }; olifant = callPackage ../applications/misc/olifant { };