Merge branch 'add-shell.nix' of https://github.com/Luflosi/kitty
This commit is contained in:
commit
5a987a162e
@ -78,6 +78,17 @@ you might have to rebuild the app.
|
||||
a self signed certificate, see for example, `here
|
||||
<https://stackoverflow.com/questions/27474751/how-can-i-codesign-an-app-without-being-in-the-mac-developer-program/27474942>`_.
|
||||
|
||||
Build and run from source with Nix
|
||||
-------------------------------------------
|
||||
|
||||
On NixOS or any other Linux or macOS system with the Nix package manager installed,
|
||||
execute ``./nix-shell`` to create the correct environment to build kitty or use
|
||||
``./nix-shell --pure`` instead to eliminate most of the influence of the outside system,
|
||||
e.g. globally installed packages. ``nix-shell`` will automatically fetch all required
|
||||
dependencies and make them available in the newly spawned shell.
|
||||
|
||||
Then proceed with ``make`` or ``make app`` according to the platform specific instructions above.
|
||||
|
||||
|
||||
Note for Linux/macOS packagers
|
||||
----------------------------------
|
||||
|
||||
8
setup.py
8
setup.py
@ -63,11 +63,11 @@ class Options(argparse.Namespace):
|
||||
for_freeze: bool = False
|
||||
libdir_name: str = 'lib'
|
||||
extra_logging: List[str] = []
|
||||
link_time_optimization: bool = True
|
||||
link_time_optimization: bool = 'KITTY_NO_LTO' not in os.environ
|
||||
update_check_interval: float = 24
|
||||
egl_library: Optional[str] = None
|
||||
startup_notification_library: Optional[str] = None
|
||||
canberra_library: Optional[str] = None
|
||||
egl_library: Optional[str] = os.getenv('KITTY_EGL_LIBRARY')
|
||||
startup_notification_library: Optional[str] = os.getenv('KITTY_STARTUP_NOTIFICATION_LIBRARY')
|
||||
canberra_library: Optional[str] = os.getenv('KITTY_CANBERRA_LIBRARY')
|
||||
|
||||
|
||||
class CompileKey(NamedTuple):
|
||||
|
||||
55
shell.nix
Normal file
55
shell.nix
Normal file
@ -0,0 +1,55 @@
|
||||
{ pkgs ? import <nixpkgs> { } }:
|
||||
with pkgs;
|
||||
|
||||
let
|
||||
inherit (lib) optional optionals;
|
||||
inherit (xorg) libX11 libXrandr libXinerama libXcursor libXi libXext;
|
||||
inherit (darwin.apple_sdk.frameworks) Cocoa CoreGraphics Foundation IOKit Kernel OpenGL;
|
||||
harfbuzzWithCoreText = harfbuzz.override { withCoreText = stdenv.isDarwin; };
|
||||
in
|
||||
mkShell rec {
|
||||
buildInputs = [
|
||||
harfbuzzWithCoreText
|
||||
ncurses
|
||||
lcms2
|
||||
] ++ optionals stdenv.isDarwin [
|
||||
Cocoa
|
||||
CoreGraphics
|
||||
Foundation
|
||||
IOKit
|
||||
Kernel
|
||||
OpenGL
|
||||
libpng
|
||||
python3
|
||||
zlib
|
||||
] ++ optionals stdenv.isLinux [
|
||||
fontconfig libunistring libcanberra libX11
|
||||
libXrandr libXinerama libXcursor libxkbcommon libXi libXext
|
||||
wayland-protocols wayland dbus
|
||||
] ++ checkInputs;
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkgconfig python3Packages.sphinx ncurses
|
||||
] ++ optionals stdenv.isDarwin [
|
||||
imagemagick
|
||||
libicns # For the png2icns tool.
|
||||
installShellFiles
|
||||
];
|
||||
|
||||
propagatedBuildInputs = optional stdenv.isLinux libGL;
|
||||
|
||||
checkInputs = [
|
||||
python3Packages.pillow
|
||||
];
|
||||
|
||||
# Causes build failure due to warning when using Clang
|
||||
hardeningDisable = [ "strictoverflow" ];
|
||||
|
||||
shellHook = if stdenv.isDarwin then ''
|
||||
export KITTY_NO_LTO=
|
||||
'' else ''
|
||||
export KITTY_EGL_LIBRARY='${stdenv.lib.getLib libGL}/lib/libEGL.so.1'
|
||||
export KITTY_STARTUP_NOTIFICATION_LIBRARY='${libstartup_notification}/lib/libstartup-notification-1.so'
|
||||
export KITTY_CANBERRA_LIBRARY='${libcanberra}/lib/libcanberra.so'
|
||||
'';
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user