ghostty/snap/snapcraft.yaml

103 lines
2.6 KiB
YAML

name: ghostty
base: core24
summary: A terminal emulator
description: |
Ghostty is a fast, feature-rich, and cross-platform terminal emulator that
uses platform-native UI and GPU acceleration.
grade: stable
confinement: classic
contact: https://github.com/ghostty-org/ghostty/discussions
issues: https://github.com/ghostty-org/ghostty/issues
website: https://ghostty.org
license: MIT
icon: images/icons/icon_512.png
adopt-info: ghostty
platforms:
amd64:
arm64:
apps:
ghostty:
command: bin/ghostty
command-chain: [bin/launcher]
completer: share/bash-completion/completions/ghostty.bash
desktop: share/applications/com.mitchellh.ghostty.desktop
environment:
PATH: /snap/ghostty/current/bin:/snap/ghostty/current/usr/bin:$PATH
LC_ALL: C.UTF-8
GHOSTTY_RESOURCES_DIR: /snap/ghostty/current/share/ghostty
parts:
launcher:
plugin: dump
source: snap/local
source-type: local
organize:
launcher: bin/
zig:
plugin: nil
build-packages:
- curl
override-pull: |
set -ex
case "$CRAFT_ARCH_BUILD_FOR" in
amd64) arch=x86_64 ;;
arm64) arch=aarch64 ;;
*) arch="" ;;
esac
rm -rf $CRAFT_PART_SRC/*
if [[ -n $arch ]]; then
curl -LO --retry-connrefused --retry 10 https://ziglang.org/download/0.13.0/zig-linux-$arch-0.13.0.tar.xz
else
echo "Unsupported arch"
exit 1
fi
tar xf zig-lin*xz
rm -f *xz
mv zig-linux*/* .
prime:
- -*
ghostty:
source: .
after: [zig]
plugin: nil
build-attributes: [enable-patchelf]
build-packages:
- libgtk-4-dev
- libadwaita-1-dev
- git
override-build: |
craftctl set version=$(grep version build.zig.zon |awk -F '"' '{print $2}')-$(git describe --abbrev=8)
$CRAFT_PART_SRC/../../zig/src/zig build -Doptimize=ReleaseFast
cp -rp zig-out/* $CRAFT_PART_INSTALL/
sed -i 's|Icon=com.mitchellh.ghostty|Icon=/snap/ghostty/current/share/icons/hicolor/512x512/apps/com.mitchellh.ghostty.png|g' $CRAFT_PART_INSTALL/share/applications/com.mitchellh.ghostty.desktop
libs:
plugin: nil
stage-packages:
- libadwaita-1-0
- libgtk-4-1
- libgtk-4-media-gstreamer
- ibus-gtk4
- libegl1
- libegl-mesa0
- libgl1-mesa-dri
- libglapi-mesa
- libglu1-mesa
- libglx-mesa0
- mesa-va-drivers
- mesa-vulkan-drivers
- libpciaccess0
- libtinfo6
- libedit2
- libelf1t64
- libsensors5
- libllvm17
- on amd64: [i965-va-driver,libdrm-intel1,libdrm-nouveau2,libdrm-amdgpu1,libdrm-radeon1]