archpkgs/foot/PKGBUILD

107 lines
2.9 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Maintainer: Daniel Eklöf <daniel at ekloef dot se>
pkgdesc="Wayland terminal emulator - fast, lightweight and minimalistic"
pkgname=foot
pkgver=1.8.2 # Dont forget to update CHANGELOG.md
pkgrel=1
arch=('x86_64' 'aarch64')
url=https://codeberg.org/dnkl/foot
license=(mit)
changelog=CHANGELOG.md
depends=('libxkbcommon' 'wayland' 'pixman' 'fontconfig' 'libutf8proc' 'fcft' 'foot-terminfo')
makedepends=('meson' 'ninja' 'scdoc' 'python' 'ncurses' 'wayland-protocols' 'tllist') # llvm, for PGO with clang
checkdepends=('check')
optdepends=('libnotify: desktop notifications'
'xdg-utils: URI launching'
'bash-completion: bash completions for foot itself')
source=(${pkgname}-${pkgver}.tar.gz::${url}/archive/${pkgver}.tar.gz)
sha256sums=('50cf5b9f3cc1ebaafa62255eea22395e8267cce21e119bc6f7ecacf11f15dada')
build() {
cd foot
local compiler=other
local do_pgo=no
# makepkg uses -O2 by default, but we *really* want -O3
CFLAGS+=" -O3"
# Figure out which compiler we're using, and whether or not to do PGO
case $(${CC-cc} --version) in
*GCC*)
compiler=gcc
do_pgo=yes
;;
*clang*)
compiler=clang
# We need llvm to be able to manage the profiling data
if command -v llvm-profdata > /dev/null; then
do_pgo=yes
# Meson adds -fprofile-correction, which Clang doesn't
# understand
CFLAGS+=" -Wno-ignored-optimization-argument"
fi
;;
esac
meson \
--prefix=/usr \
--buildtype=release \
--wrap-mode=nodownload \
-Db_lto=true \
-Dterminfo-install-location=disabled \
. build
if [[ ${do_pgo} == yes ]]; then
find -name "*.gcda" -delete
meson configure -Db_pgo=generate build
ninja -C build
local script_options="--scroll --scroll-region --colors-regular --colors-bright --colors-256 --colors-rgb --attr-bold --attr-italic --attr-underline --sixel"
local tmp_file=$(mktemp)
if [[ -v WAYLAND_DISPLAY ]]; then
# TODO: remove the sleep in the next release (with SIGWINCH
# fixes in generate-alt-random-writes.py)
build/footclient --version
build/foot \
--config /dev/null \
--term=xterm \
sh -c "sleep 2 && ./scripts/generate-alt-random-writes.py ${script_options} ${tmp_file} && cat ${tmp_file}"
else
build/footclient --version
build/foot --version
./scripts/generate-alt-random-writes.py \
--rows=67 \
--cols=135 \
${script_options} \
${tmp_file}
build/pgo ${tmp_file} ${tmp_file} ${tmp_file}
fi
rm "${tmp_file}"
if [[ ${compiler} == clang ]]; then
llvm-profdata merge default_*profraw --output=build/default.profdata
fi
meson configure -Db_pgo=use build
fi
ninja -C build
}
check() {
cd foot
ninja -C build test
}
package() {
cd foot
DESTDIR="${pkgdir}/" ninja -C build install
install -Dm 644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
}