about summary refs log tree commit diff
path: root/pkgs/applications/editors/neovim
diff options
context:
space:
mode:
authorPeter Hoeg <peter@hoeg.com>2019-01-08 20:24:03 +0800
committerGitHub <noreply@github.com>2019-01-08 20:24:03 +0800
commit15c8362c14bfd17dcae5e18646993f1b8fb9d3d3 (patch)
treebc42e9f3690e81a83883d7f09066df88d1e38c6f /pkgs/applications/editors/neovim
parenta8a2e8411061846d11df0ebe1c93c0ec6b3e3521 (diff)
parentc52c4a00a28ce89562b00e77ba66f32393b079a3 (diff)
downloadnixlib-15c8362c14bfd17dcae5e18646993f1b8fb9d3d3.tar
nixlib-15c8362c14bfd17dcae5e18646993f1b8fb9d3d3.tar.gz
nixlib-15c8362c14bfd17dcae5e18646993f1b8fb9d3d3.tar.bz2
nixlib-15c8362c14bfd17dcae5e18646993f1b8fb9d3d3.tar.lz
nixlib-15c8362c14bfd17dcae5e18646993f1b8fb9d3d3.tar.xz
nixlib-15c8362c14bfd17dcae5e18646993f1b8fb9d3d3.tar.zst
nixlib-15c8362c14bfd17dcae5e18646993f1b8fb9d3d3.zip
Merge pull request #53447 from timokau/neovim-qt-wrapper
 neovim-qt: wrap in separate derivation
Diffstat (limited to 'pkgs/applications/editors/neovim')
-rw-r--r--pkgs/applications/editors/neovim/qt.nix126
1 files changed, 69 insertions, 57 deletions
diff --git a/pkgs/applications/editors/neovim/qt.nix b/pkgs/applications/editors/neovim/qt.nix
index 315a51256f28..d562557ae005 100644
--- a/pkgs/applications/editors/neovim/qt.nix
+++ b/pkgs/applications/editors/neovim/qt.nix
@@ -1,62 +1,74 @@
 { stdenv, fetchFromGitHub, cmake, doxygen, makeWrapper
 , msgpack, neovim, pythonPackages, qtbase }:
 
-stdenv.mkDerivation rec {
-  name = "neovim-qt-${version}";
-  version = "0.2.11";
-
-  src = fetchFromGitHub {
-    owner  = "equalsraf";
-    repo   = "neovim-qt";
-    rev    = "v${version}";
-    sha256 = "0pc1adxc89p2rdvb6nxyqr9sjzqz9zw2dg7a4ardxsl3a8jga1wh";
-  };
+let
+  unwrapped = stdenv.mkDerivation rec {
+    pname = "neovim-qt-unwrapped";
+    version = "0.2.11";
+
+    src = fetchFromGitHub {
+      owner  = "equalsraf";
+      repo   = "neovim-qt";
+      rev    = "v${version}";
+      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'
+    '';
 
-  cmakeFlags = [
-    "-DUSE_SYSTEM_MSGPACK=1"
-  ];
-
-  buildInputs = with pythonPackages; [
-    neovim qtbase msgpack
-  ] ++ (with pythonPackages; [
-    jinja2 msgpack python
-  ]);
-
-  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'
-  '';
-
-  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;
+    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
+
+      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;
+  }