# Template file for 'wezterm'
pkgname=wezterm
version=20240203
revision=2
_srcver=${version}-110809-5046fc22
archs="x86_64* i686* aarch64* arm*" # ring
build_style=cargo
configure_args="--no-default-features --features wezterm-gui/distro-defaults,wezterm-gui/wayland"
hostmakedepends="pkg-config zlib-devel"
makedepends="fontconfig-devel freetype-devel harfbuzz-devel openssl-devel
 libssh2-devel libX11-devel libxkbcommon-devel wayland-devel xcb-util-devel
 xcb-util-image-devel xcb-util-keysyms-devel xcb-util-wm-devel zlib-devel"
depends="noto-fonts-emoji fonts-roboto-ttf wezterm-terminfo-${version}_${revision}"
short_desc="GPU-accelerated cross-platform terminal emulator and multiplexer"
maintainer="Joseph Benden <joe@benden.us>"
license="MIT"
homepage="https://wezfurlong.org/wezterm/"
changelog="https://wezfurlong.org/wezterm/changelog.html"
distfiles="https://github.com/wez/wezterm/releases/download/${_srcver}/wezterm-${_srcver}-src.tar.gz"
checksum=df60b1081d402b5a9239cc4cef16fc699eab68bbbeac9c669cb5d991a6010b2c

do_check() {
	# NOTE: cannot use build_style cargo do_check because of --release flag.
	# NOTE: e2e::sftp is skipped due to missing ssh
	# NOTE: escape::action_size has bad size due to discriminate
	# NOTE: surface::line::storage::test::memory_usage has bad size due to discriminate
	cargo test --target ${RUST_TARGET} --workspace --locked -- \
		--skip e2e::sftp \
		--skip escape::action_size \
		--skip surface::line::storage::test::memory_usage \
		--skip shapecache::test::ligatures_fira \
		--skip shapecache::test::ligatures_jetbrains
}

do_install() {
	vbin target/${RUST_TARGET}/release/wezterm
	vbin target/${RUST_TARGET}/release/wezterm-gui
	vbin target/${RUST_TARGET}/release/wezterm-mux-server
	vbin target/${RUST_TARGET}/release/strip-ansi-escapes

	vinstall assets/shell-integration/wezterm.sh 644 etc/profile.d org_wezfurlong_wezterm.sh
	vinstall assets/icon/terminal.png 644 usr/share/icons/hicolor/128x128/apps org.wezfurlong.wezterm.png
	vinstall assets/icon/wezterm-icon.svg 644 usr/share/icons/hicolor/scalable/apps org.wezfurlong.wezterm.svg
	vinstall assets/wezterm.desktop 644 usr/share/applications org.wezfurlong.wezterm.desktop
	vinstall assets/wezterm.appdata.xml 644 usr/share/metainfo org.wezfurlong.wezterm.appdata.xml
	vinstall assets/wezterm-nautilus.py 644 usr/share/nautilus-python/extensions

	vcompletion assets/shell-completion/bash bash
	vcompletion assets/shell-completion/fish fish
	vcompletion assets/shell-completion/zsh zsh

	vmkdir usr/share/terminfo
	tic -sx -o ${DESTDIR}/usr/share/terminfo termwiz/data/wezterm.terminfo

	vdoc README.md
	vlicense LICENSE.md
}

wezterm-terminfo_package() {
	short_desc+=" - terminfo data"
	pkg_install() {
		vmove usr/share/terminfo
	}
}
