rio: 0.0.36 -> 0.0.37
[NixPkgs.git] / pkgs / applications / terminal-emulators / rio / default.nix
bloba1f89f6a4e0a94998ccffb45a66e618042a63ad2
1 { lib
2 , stdenv
3 , darwin
4 , fetchFromGitHub
5 , rustPlatform
6 , nixosTests
7 , nix-update-script
9 , autoPatchelfHook
10 , cmake
11 , ncurses
12 , pkg-config
14 , gcc-unwrapped
15 , fontconfig
16 , libGL
17 , vulkan-loader
18 , libxkbcommon
20 , withX11 ? !stdenv.isDarwin
21 , libX11
22 , libXcursor
23 , libXi
24 , libXrandr
25 , libxcb
27 , withWayland ? !stdenv.isDarwin
28 , wayland
30 let
31   rlinkLibs = if stdenv.isDarwin then [
32     darwin.libobjc
33     darwin.apple_sdk_11_0.frameworks.AppKit
34     darwin.apple_sdk_11_0.frameworks.AVFoundation
35     darwin.apple_sdk_11_0.frameworks.Vision
36   ] else [
37     (lib.getLib gcc-unwrapped)
38     fontconfig
39     libGL
40     libxkbcommon
41     vulkan-loader
42   ] ++ lib.optionals withX11 [
43     libX11
44     libXcursor
45     libXi
46     libXrandr
47     libxcb
48   ] ++ lib.optionals withWayland [
49     wayland
50   ];
52 rustPlatform.buildRustPackage rec {
53   pname = "rio";
54   version = "0.0.37";
56   src = fetchFromGitHub {
57     owner = "raphamorim";
58     repo = "rio";
59     rev = "v${version}";
60     hash = "sha256-rY5nuZcMbK9PYxfGYdVheOOVIC4I/11EOWpNmG6gH9A=";
61   };
63   cargoHash = "sha256-tHcUMxe9HwTzm2oDwaTyuh+UZUwW64xPX/cftxqZoz8=";
65   nativeBuildInputs = [
66     ncurses
67   ] ++ lib.optionals stdenv.isLinux [
68     cmake
69     pkg-config
70     autoPatchelfHook
71   ];
73   runtimeDependencies = rlinkLibs;
75   buildInputs = rlinkLibs;
77   outputs = [ "out" "terminfo" ];
79   buildNoDefaultFeatures = true;
80   buildFeatures = [ ]
81     ++ lib.optional withX11 "x11"
82     ++ lib.optional withWayland "wayland";
84   checkFlags = [
85     # Fail to run in sandbox environment.
86     "--skip=screen::context::test"
87   ];
89   postInstall = ''
90     install -D -m 644 misc/rio.desktop -t $out/share/applications
91     install -D -m 644 misc/logo.svg \
92                       $out/share/icons/hicolor/scalable/apps/rio.svg
94     install -dm 755 "$terminfo/share/terminfo/r/"
95     tic -xe rio,rio-direct -o "$terminfo/share/terminfo" misc/rio.terminfo
96     mkdir -p $out/nix-support
97     echo "$terminfo" >> $out/nix-support/propagated-user-env-packages
98   '' + lib.optionalString stdenv.isDarwin ''
99     mkdir $out/Applications/
100     mv misc/osx/Rio.app/ $out/Applications/
101     mkdir $out/Applications/Rio.app/Contents/MacOS/
102     ln -s $out/bin/rio $out/Applications/Rio.app/Contents/MacOS/
103   '';
105   passthru = {
106     updateScript = nix-update-script {
107       extraArgs = [ "--version-regex" "v([0-9.]+)" ];
108     };
110     tests.test = nixosTests.terminal-emulators.rio;
111   };
113   meta = {
114     description = "A hardware-accelerated GPU terminal emulator powered by WebGPU";
115     homepage = "https://raphamorim.io/rio";
116     license = lib.licenses.mit;
117     maintainers = with lib.maintainers; [ tornax otavio oluceps ];
118     platforms = lib.platforms.unix;
119     changelog = "https://github.com/raphamorim/rio/blob/v${version}/CHANGELOG.md";
120     mainProgram = "rio";
121   };