CI: add a FreeBSD build on Sourcehut

This commit is contained in:
Jente Hidskes 2019-04-20 19:32:00 +02:00 committed by Jente Hidskes
parent 5bfedaf84f
commit cf06e42687
3 changed files with 57 additions and 1 deletions

45
.builds/freebsd.yml Normal file
View file

@ -0,0 +1,45 @@
image: freebsd/latest
packages:
- devel/evdev-proto
- devel/meson
- devel/libepoll-shim
- devel/pkgconf
- graphics/mesa-libs
- graphics/wayland
- graphics/wayland-protocols
- x11/libinput
- x11/libxkbcommon
- x11/pixman
sources:
- https://github.com/swaywm/wlroots
- https://github.com/Hjdskes/cage
tasks:
# Taken from sway
- fixup_epoll: |
cat << 'EOF' | sudo tee /usr/local/libdata/pkgconfig/epoll-shim.pc
prefix=/usr/local
exec_prefix=\$\{\$prefix\}
libdir=${prefix}/lib
sharedlibdir=${prefix}/lib
includedir=${prefix}/include/libepoll-shim
Name: epoll-shim
Description: epoll shim implemented using kevent
Version: 0
Requires:
Libs: -L${libdir} -L${sharedlibdir} -lepoll-shim
Libs.private: -pthread -lrt
Cflags: -I${includedir}
EOF
# Install wlroots, which is required by Cage. Note that we compile a tagged
# version, instead of master, to avoid any breaking changes in wlroots.
- wlroots: |
cd wlroots
# This corresponds to the tag of 0.5.0
git checkout c9137cba691b57c3eaf3ff94f9bf8e623f66ccc5
meson --prefix=/usr/local build -Drootston=false -Dexamples=false
ninja -C build
sudo ninja -C build install
- build: |
cd cage
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig meson build -Dxwayland=true
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ninja -C build

View file

@ -24,6 +24,17 @@ endif
cc = meson.get_compiler('c') cc = meson.get_compiler('c')
is_freebsd = host_machine.system().startswith('freebsd')
if is_freebsd
add_project_arguments(
[
'-Wno-format-extra-args',
'-Wno-gnu-zero-variadic-macro-arguments',
],
language: 'c'
)
endif
wlroots = dependency('wlroots', version: '>= 0.5.0') wlroots = dependency('wlroots', version: '>= 0.5.0')
wayland_protos = dependency('wayland-protocols', version: '>=1.14') wayland_protos = dependency('wayland-protocols', version: '>=1.14')
wayland_server = dependency('wayland-server') wayland_server = dependency('wayland-server')

View file

@ -55,7 +55,7 @@ scissor_output(struct wlr_output *output, pixman_box32_t *rect)
} }
static void static void
send_frame_done(struct wlr_surface *surface, int _unused, int __unused, void *data) send_frame_done(struct wlr_surface *surface, int _unused, int _not_used, void *data)
{ {
struct timespec *now = data; struct timespec *now = data;
wlr_surface_send_frame_done(surface, now); wlr_surface_send_frame_done(surface, now);