Workflow to build on *BSD
Motivation: As https://github.com/phkaeser/wlmaker/pull/11 showed, it's too easy to accidentally end up with a broken build on FreeBSD (or other BSDs, for that matter).
To prevent: There is a github workflow to build on Linux, running on push/pull. Ideally, there be a github workflow that runs a build on FreeBSD (and/or other BSD flavours).
How many bundled dependencies do you want built on CI? Downstream package doesn't use any (except libbase). I'd prefer system wlroots (like labwc CI) unless it's out-of-sync (either too new or too old). However, CMake (unlike Meson) doesn't make this easy.
FreeBSD CI options:
- freebsd-vm (non-native: slow and unstable but fine for small projects)
- cross-platform-actions (non-native: slow and unstable but fine for small projects)
- sourcehut (maybe non-free)
- CirrusCI (easy to hit free-tier monthly limits in large projects)
- TravisCI (abandonware)
Some of those support other BSDs but given this project doesn't have platform-specific code it's probably too much trouble.
Preferrably: No bundled dependency (apart from libbase), and use system wlroots.
For practical terms during early development: My development environment is bound to some older stable releases, with old(ish) wlroots. Since I ran into a few bugs + had to pull wlroots from HEAD, I ended up with the current set of bundled dependencies; to have a consistent set of workably recent dependencies across my dev environments. Also, wlroots API keeps changing significantly even across minor version; making it hard to have one codebase for various versions of system wlroots.
In current experimental stage, that seemed OK. I'll want to move this to bundled dependency version(s) as wlmaker progresses.
Thank you for the pointers! Will look into these.