2025-01-03 08:48:01 -06:00

95 lines
2.1 KiB
Nix

{
lib,
stdenv,
buildGoModule,
fetchzip,
pkg-config,
copyDesktopItems,
makeDesktopItem,
desktopToDarwinBundle,
wayland,
libxkbcommon,
vulkan-headers,
libGL,
xorg,
callPackage,
buildPackages,
anvilExtras ? callPackage ./extras.nix { },
}:
buildGoModule rec {
pname = "anvil-editor";
version = "0.4";
# has to update vendorHash of extra package manually
# nixpkgs-update: no auto update
src = fetchzip {
url = "https://anvil-editor.net/releases/anvil-src-v${version}.tar.gz";
hash = "sha256-0fi6UeppWC9KbWibjQYlPlRqsl9xsvij8YpJUS0S/wY=";
};
modRoot = "anvil/src/anvil";
vendorHash = "sha256-1oFBV7D7JgOt5yYAxVvC4vL4ccFv3JrNngZbo+5pzrk=";
nativeBuildInputs =
[
pkg-config
copyDesktopItems
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
desktopToDarwinBundle
];
buildInputs = lib.optionals (!stdenv.hostPlatform.isDarwin) [
wayland
libxkbcommon
vulkan-headers
libGL
xorg.libX11
xorg.libXcursor
xorg.libXfixes
];
# Got different result in utf8 char length?
checkFlags = [ "-skip=^TestClearAfter$" ];
desktopItems = [
(makeDesktopItem {
name = "anvil";
exec = "anvil";
icon = "anvil";
desktopName = "Anvil";
comment = meta.description;
categories = [ "TextEditor" ];
startupWMClass = "anvil";
})
];
postInstall = ''
pushd ../../img
# cannot add to nativeBuildInputs
# will be conflict with icnsutils in desktopToDarwinBundle
${lib.getExe' buildPackages.libicns "icns2png"} -x anvil.icns
for width in 32 48 128 256; do
square=''${width}x''${width}
install -Dm644 anvil_''${square}x32.png $out/share/icons/hicolor/''${square}/apps/anvil.png
done
popd
cp ${anvilExtras}/bin/* $out/bin
'';
passthru = {
inherit anvilExtras;
};
meta = {
description = "Graphical, multi-pane tiling editor inspired by Acme";
homepage = "https://anvil-editor.net";
license = lib.licenses.mit;
mainProgram = "anvil";
maintainers = with lib.maintainers; [ aleksana ];
platforms = with lib.platforms; unix ++ windows;
};
}