2023-05-26 10:20:05 +02:00
|
|
|
image: alpine/edge
|
2020-03-28 12:32:40 +01:00
|
|
|
packages:
|
|
|
|
|
- musl-dev
|
|
|
|
|
- eudev-libs
|
|
|
|
|
- eudev-dev
|
|
|
|
|
- linux-headers
|
|
|
|
|
- meson
|
|
|
|
|
- ninja
|
|
|
|
|
- gcc
|
|
|
|
|
- scdoc
|
|
|
|
|
- wayland-dev
|
|
|
|
|
- wayland-protocols
|
|
|
|
|
- freetype-dev
|
|
|
|
|
- fontconfig-dev
|
2020-09-16 19:13:22 +02:00
|
|
|
- harfbuzz-dev
|
2020-08-20 19:25:35 +02:00
|
|
|
- utf8proc-dev
|
2020-04-13 11:52:43 +02:00
|
|
|
- pixman-dev
|
|
|
|
|
- libxkbcommon-dev
|
2020-03-28 12:32:40 +01:00
|
|
|
- ncurses
|
2020-08-22 10:25:52 +02:00
|
|
|
- python3
|
|
|
|
|
- py3-pip
|
2020-09-16 19:29:46 +02:00
|
|
|
- check-dev
|
2020-09-16 19:38:50 +02:00
|
|
|
- ttf-hack
|
|
|
|
|
- font-noto-emoji
|
2020-03-28 12:32:40 +01:00
|
|
|
|
|
|
|
|
sources:
|
2022-08-23 16:38:39 +02:00
|
|
|
- https://git.sr.ht/~dnkl/foot
|
2020-03-28 12:32:40 +01:00
|
|
|
|
|
|
|
|
# triggers:
|
|
|
|
|
# - action: email
|
|
|
|
|
# condition: failure
|
|
|
|
|
# to: <committer>
|
|
|
|
|
|
|
|
|
|
tasks:
|
fcft: adapt to API changes in fcft-3.x
Fcft no longer uses wchar_t, but plain uint32_t to represent
codepoints.
Since we do a fair amount of string operations in foot, it still makes
sense to use something that actually _is_ a string (or character),
rather than an array of uint32_t.
For this reason, we switch out all wchar_t usage in foot to
char32_t. We also verify, at compile-time, that char32_t used
UTF-32 (which is what fcft expects).
Unfortunately, there are no string functions for char32_t. To avoid
having to re-implement all wcs*() functions, we add a small wrapper
layer of c32*() functions.
These wrapper functions take char32_t arguments, but then simply call
the corresponding wcs*() function.
For this to work, wcs*() must _also_ be UTF-32 compatible. We can
check for the presence of the __STDC_ISO_10646__ macro. If set,
wchar_t is at least 4 bytes and its internal representation is UTF-32.
FreeBSD does *not* define this macro, because its internal wchar_t
representation depends on the current locale. It _does_ use UTF-32
_if_ the current locale is UTF-8.
Since foot enforces UTF-8, we simply need to check if __FreeBSD__ is
defined.
Other fcft API changes:
* fcft_glyph_rasterize() -> fcft_codepoint_rasterize()
* font.space_advance has been removed
* ‘tags’ have been removed from fcft_grapheme_rasterize()
* ‘fcft_log_init()’ removed
* ‘fcft_init()’ and ‘fcft_fini()’ must be explicitly called
2021-08-21 14:50:42 +02:00
|
|
|
- fcft: |
|
|
|
|
|
cd foot/subprojects
|
|
|
|
|
git clone https://codeberg.org/dnkl/fcft.git
|
|
|
|
|
cd ../..
|
2020-03-28 12:32:40 +01:00
|
|
|
- debug: |
|
|
|
|
|
mkdir -p bld/debug
|
2021-11-20 11:24:13 +01:00
|
|
|
meson --buildtype=debug -Dgrapheme-clustering=enabled -Dfcft:grapheme-shaping=enabled -Dfcft:run-shaping=enabled -Dfcft:test-text-shaping=true foot bld/debug
|
2020-03-28 12:32:40 +01:00
|
|
|
ninja -C bld/debug -k0
|
|
|
|
|
meson test -C bld/debug --print-errorlogs
|
|
|
|
|
- release: |
|
|
|
|
|
mkdir -p bld/release
|
2022-04-23 11:24:44 +02:00
|
|
|
meson --buildtype=minsize -Db_pgo=generate -Dgrapheme-clustering=enabled -Dfcft:grapheme-shaping=enabled -Dfcft:run-shaping=enabled -Dfcft:test-text-shaping=true foot bld/release
|
2020-03-28 12:32:40 +01:00
|
|
|
ninja -C bld/release -k0
|
|
|
|
|
meson test -C bld/release --print-errorlogs
|
2020-08-22 10:25:52 +02:00
|
|
|
- codespell: |
|
2023-07-25 16:47:40 +02:00
|
|
|
python3 -m venv codespell-venv
|
|
|
|
|
source codespell-venv/bin/activate
|
2020-08-22 10:25:52 +02:00
|
|
|
pip install codespell
|
2020-12-24 13:44:09 +01:00
|
|
|
cd foot
|
2022-08-20 18:25:05 +02:00
|
|
|
~/.local/bin/codespell -Lser,doas,zar README.md INSTALL.md CHANGELOG.md *.c *.h doc/*.scd
|
2023-07-25 16:47:40 +02:00
|
|
|
deactivate
|