diff options
author | strager <strager.nds@gmail.com> | 2019-03-31 12:18:58 -0700 |
---|---|---|
committer | Dmitry Kalinkin <dmitry.kalinkin@gmail.com> | 2019-03-31 15:18:58 -0400 |
commit | 75aa8460ac73f92b1e47436508b52a18213c003c (patch) | |
tree | c4bc663ac304f99be72f9d24f088bd3b40d641c7 /pkgs/applications/misc/kitty/default.nix | |
parent | f88d9c3c960c3fa7bf6a5e51640a79bc75fa0b58 (diff) | |
download | nixpkgs-75aa8460ac73f92b1e47436508b52a18213c003c.tar nixpkgs-75aa8460ac73f92b1e47436508b52a18213c003c.tar.gz nixpkgs-75aa8460ac73f92b1e47436508b52a18213c003c.tar.bz2 nixpkgs-75aa8460ac73f92b1e47436508b52a18213c003c.tar.lz nixpkgs-75aa8460ac73f92b1e47436508b52a18213c003c.tar.xz nixpkgs-75aa8460ac73f92b1e47436508b52a18213c003c.tar.zst nixpkgs-75aa8460ac73f92b1e47436508b52a18213c003c.zip |
kitty: support macOS (#56740)
Install the `kitty` command-line utility and the `kitty.app` macOS application. * Prefer libicns (png2icns) over Apple's non-free iconutil. * Work around warnings from Apple headers by disabling -pedantic-errors and -Werror. * Work around ld not support LLVM-LTO by disabling LTO. * Make Kitty and glfw compile for macOS 10.11 (and macOS 10.10).
Diffstat (limited to 'pkgs/applications/misc/kitty/default.nix')
-rw-r--r-- | pkgs/applications/misc/kitty/default.nix | 64 |
1 files changed, 58 insertions, 6 deletions
diff --git a/pkgs/applications/misc/kitty/default.nix b/pkgs/applications/misc/kitty/default.nix index 58b6ae9aae8..3edb48cc489 100644 --- a/pkgs/applications/misc/kitty/default.nix +++ b/pkgs/applications/misc/kitty/default.nix @@ -2,7 +2,20 @@ harfbuzz, fontconfig, pkgconfig, ncurses, imagemagick, xsel, libstartup_notification, libX11, libXrandr, libXinerama, libXcursor, libxkbcommon, libXi, libXext, wayland-protocols, wayland, - which, dbus + which, dbus, + Cocoa, + CoreGraphics, + Foundation, + IOKit, + Kernel, + OpenGL, + cf-private, + libicns, + libpng, + librsvg, + optipng, + python3, + zlib, }: with python3Packages; @@ -19,12 +32,32 @@ buildPythonApplication rec { }; buildInputs = [ - fontconfig glfw ncurses libunistring harfbuzz libX11 + ncurses harfbuzz + ] ++ stdenv.lib.optionals stdenv.isDarwin [ + Cocoa + CoreGraphics + Foundation + IOKit + Kernel + OpenGL + cf-private + libpng + python3 + zlib + ] ++ stdenv.lib.optionals stdenv.isLinux [ + fontconfig glfw libunistring libX11 libXrandr libXinerama libXcursor libxkbcommon libXi libXext wayland-protocols wayland dbus ]; - nativeBuildInputs = [ pkgconfig which sphinx ncurses ]; + nativeBuildInputs = [ + pkgconfig which sphinx ncurses + ] ++ stdenv.lib.optionals stdenv.isDarwin [ + imagemagick + libicns # For the png2icns tool. + librsvg + optipng + ]; outputs = [ "out" "terminfo" ]; @@ -33,16 +66,30 @@ buildPythonApplication rec { src = ./fix-paths.patch; libstartup_notification = "${libstartup_notification}/lib/libstartup-notification-1.so"; }) + ] ++ stdenv.lib.optionals stdenv.isDarwin [ + ./macos-10.11.patch + ./no-lto.patch + ./no-werror.patch + ./png2icns.patch ]; - buildPhase = '' + buildPhase = if stdenv.isDarwin then '' + make app + '' else '' ${python.interpreter} setup.py linux-package ''; installPhase = '' runHook preInstall mkdir -p $out + ${if stdenv.isDarwin then '' + mkdir "$out/bin" + ln -s ../Applications/kitty.app/Contents/MacOS/kitty "$out/bin/kitty" + mkdir "$out/Applications" + cp -r kitty.app "$out/Applications/kitty.app" + '' else '' cp -r linux-package/{bin,share,lib} $out + ''} wrapProgram "$out/bin/kitty" --prefix PATH : "$out/bin:${stdenv.lib.makeBinPath [ imagemagick xsel ]}" runHook postInstall @@ -54,8 +101,13 @@ buildPythonApplication rec { ''; postInstall = '' + terminfo_src=${if stdenv.isDarwin then + ''"$out/Applications/kitty.app/Contents/Resources/terminfo"'' + else + "$out/share/terminfo"} + mkdir -p $terminfo/share - mv $out/share/terminfo $terminfo/share/terminfo + mv "$terminfo_src" $terminfo/share/terminfo mkdir -p $out/nix-support echo "$terminfo" >> $out/nix-support/propagated-user-env-packages @@ -65,7 +117,7 @@ buildPythonApplication rec { homepage = https://github.com/kovidgoyal/kitty; description = "A modern, hackable, featureful, OpenGL based terminal emulator"; license = licenses.gpl3; - platforms = platforms.linux; + platforms = platforms.darwin ++ platforms.linux; maintainers = with maintainers; [ tex rvolosatovs ]; }; } |