Files
valw/nix/package.ulu.nix
T

63 lines
1.7 KiB
Nix

{ ... }:
{
perSystem =
{ pkgs, lib, ... }:
{
packages.default = pkgs.rustPlatform.buildRustPackage {
pname = "valw";
version = "0.1.0";
src = lib.cleanSourceWith {
src = ../.;
filter =
path: _type:
!(builtins.elem (baseNameOf path) [
".direnv"
".jj"
"result"
"target"
]);
};
cargoLock.lockFile = ../Cargo.lock;
nativeBuildInputs = [
pkgs.makeWrapper
pkgs.pkg-config
];
buildInputs = [
pkgs.libxkbcommon
pkgs.wayland
];
# Tests run through `nix flake check` instead.
doCheck = false;
# Clicking a preview opens Satty if configured. --suffix keeps a user's own Satty first.
# The editor embeds DejaVu Sans Bold; its licence wants the notice shipped.
postInstall = ''
wrapProgram $out/bin/valw --suffix PATH : ${lib.makeBinPath [ pkgs.satty ]}
install -Dm644 assets/fonts/LICENSE-DejaVu $out/share/licenses/valw/LICENSE-DejaVu
'';
# dlopen()ed at run time: libwayland (winit, valw), libxkbcommon (winit),
# libEGL (zoom, editor; Mesa's drivers come from the system).
postFixup = ''
patchelf --add-rpath ${
lib.makeLibraryPath [
pkgs.wayland
pkgs.libxkbcommon
pkgs.libglvnd
]
} $out/bin/.valw-wrapped
'';
meta = {
description = "macOS-style screenshots for niri";
mainProgram = "valw";
platforms = lib.platforms.linux;
};
};
};
}