repo/wayland/foot-pgo/build

82 lines
1.5 KiB
Plaintext
Raw Normal View History

2021-07-08 12:35:01 +00:00
#!/bin/sh -e
2023-03-02 14:40:00 +00:00
export DESTDIR="$1"
2021-07-08 12:35:01 +00:00
[ "$WAYLAND_DISPLAY" ] || {
printf 'error: foot-pgo requires a running wayland session\n' >&2
exit 1
}
2021-07-18 03:47:02 +00:00
case $("$CC" --version) in
*clang*)
# Clang requires this for PGO.
export CFLAGS="$CFLAGS -Wno-ignored-optimization-argument"
;;
2021-07-08 12:35:01 +00:00
*GCC*)
2021-07-18 03:47:02 +00:00
# PGO with < -O3 is slow > GCC 10.1.X.
export CFLAGS="$CFLAGS -O3"
;;
2021-07-08 12:35:01 +00:00
esac
# Apply ASV patch.
patch -p1 < asv.patch
2021-07-08 12:35:01 +00:00
mkdir -p bld/release
cd bld/release
2023-11-18 20:51:12 +00:00
meson setup \
-Dprefix=/usr \
-Dbuildtype=release \
2021-07-27 13:59:03 +00:00
-Dime=false \
2021-07-08 12:35:01 +00:00
../..
# Generate PGO data.
{
meson configure \
2023-04-04 00:39:17 +00:00
-Db_pgo=generate
2021-07-08 12:35:01 +00:00
ninja
ninja test
# Required (gives some profiling data).
2023-04-04 00:39:17 +00:00
./utils/xtgettcap
2021-07-08 12:35:01 +00:00
./footclient --version
set -- \
"$OLDPWD/scripts/generate-alt-random-writes.py" \
--scroll \
--scroll-region \
--colors-regular \
--colors-bright \
--colors-256 \
--colors-rgb \
--attr-bold \
--attr-italic \
--attr-underline \
--sixel \
.pgotmp
./foot \
--config=/dev/null \
2023-04-04 00:39:17 +00:00
--override tweak.grapheme-shaping=no \
2021-07-08 12:35:01 +00:00
--term=xterm \
sh -c "$* && cat .pgotmp"
}
# Clang requires this for PGO.
2021-07-15 12:21:40 +00:00
case $("$CC" --version) in *clang*)
2021-07-08 12:35:01 +00:00
llvm-profdata merge default_*profraw --output=default.profdata
esac
meson configure -Db_pgo=use
ninja
ninja install
rm -rf \
"$DESTDIR/usr/share/doc" \
2021-07-08 12:35:01 +00:00
"$DESTDIR/usr/share/zsh" \
"$DESTDIR/usr/share/fish" \
"$DESTDIR/usr/share/bash-completion"