about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/networking/irc/communi/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/networking/irc/communi/default.nix')
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/communi/default.nix18
1 files changed, 14 insertions, 4 deletions
diff --git a/nixpkgs/pkgs/applications/networking/irc/communi/default.nix b/nixpkgs/pkgs/applications/networking/irc/communi/default.nix
index 0d0144fbf915..ab698ea9c560 100644
--- a/nixpkgs/pkgs/applications/networking/irc/communi/default.nix
+++ b/nixpkgs/pkgs/applications/networking/irc/communi/default.nix
@@ -1,4 +1,4 @@
-{ fetchgit, libcommuni, qtbase, qmake, lib, stdenv }:
+{ fetchgit, libcommuni, qtbase, qmake, lib, stdenv, wrapQtAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "communi";
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
     fetchSubmodules = true;
   };
 
-  nativeBuildInputs = [ qmake ];
+  nativeBuildInputs = [ qmake ]
+    ++ lib.optional stdenv.isDarwin wrapQtAppsHook;
 
   buildInputs = [ libcommuni qtbase ];
 
@@ -25,14 +26,23 @@ stdenv.mkDerivation rec {
 
   qmakeFlags = [
     "COMMUNI_INSTALL_PREFIX=${placeholder "out"}"
-    "COMMUNI_INSTALL_BINS=${placeholder "out"}/bin"
     "COMMUNI_INSTALL_PLUGINS=${placeholder "out"}/lib/communi/plugins"
     "COMMUNI_INSTALL_ICONS=${placeholder "out"}/share/icons/hicolor"
     "COMMUNI_INSTALL_DESKTOP=${placeholder "out"}/share/applications"
     "COMMUNI_INSTALL_THEMES=${placeholder "out"}/share/communi/themes"
+    (if stdenv.isDarwin
+      then [ "COMMUNI_INSTALL_BINS=${placeholder "out"}/Applications" ]
+      else [ "COMMUNI_INSTALL_BINS=${placeholder "out"}/bin" ])
   ];
 
-  postInstall = lib.optionalString stdenv.isLinux ''
+  postInstall = if stdenv.isDarwin then ''
+    # Nix qmake does not add the bundle rpath by default.
+    install_name_tool \
+      -add_rpath @executable_path/../Frameworks \
+      $out/Applications/Communi.app/Contents/MacOS/Communi
+
+    wrapQtApp $out/Applications/Communi.app/Contents/MacOS/Communi
+  '' else ''
     substituteInPlace "$out/share/applications/communi.desktop" \
       --replace "/usr/bin" "$out/bin"
   '';