Skip to content

ci: use Ninja for all FreeBSD build modes - #247

Merged
jcelerier merged 1 commit into
masterfrom
fix/freebsd-bmake-parallel
Aug 22, 2026
Merged

ci: use Ninja for all FreeBSD build modes#247
jcelerier merged 1 commit into
masterfrom
fix/freebsd-bmake-parallel

Conversation

@jcelerier

Copy link
Copy Markdown
Member

Problem

The four non-MODULE FreeBSD matrix jobs (LIBRARY and HEADER_ONLY, boost 0 and 1) fail immediately after configure:

-- Build files have been written to: /home/runner/work/libremidi/libremidi/build
make: option requires an argument -- j
usage: make [-BeikNnqrSstWwX] ...
##[error]ssh exited with code 2

cmake --build build --parallel with no job count passes a bare -j to the build tool. GNU make reads that as "unlimited jobs"; FreeBSD's bmake requires an argument to -j and exits 2.

The VM prepare step installs jackit boost-libs cmake git ninja — no gmake — so with the default Unix Makefiles generator CMAKE_MAKE_PROGRAM resolves to /usr/bin/make, i.e. bmake.

That is exactly why 2 of 6 jobs passed: -GNinja was set only for MODULE.

library_mode generator result
MODULE Ninja
LIBRARY, HEADER_ONLY Unix Makefiles → bmake

Fix

Drop the conditional and use Ninja for every mode. ninja is already installed in prepare, and it makes the FreeBSD leg consistent with the rest of the matrix.

The alternative — cmake --build build --parallel $(sysctl -n hw.ncpu) — would also work, but would need the same treatment on the --target install invocation.

Nothing about the FreeBSD build was broken: configure completes cleanly (ALSA correctly skipped, JACK dynamic loading selected). This was purely the build invocation.

🤖 Generated with Claude Code

https://claude.ai/code/session_018jew8MXh98AHvSZBxz7Wn5

`cmake --build --parallel` with no job count passes a bare `-j` to the
build tool. FreeBSD's bmake requires an argument to `-j` and exits 2, so
the four non-MODULE FreeBSD jobs failed right after configure. Only
MODULE passed, since it was the sole mode using Ninja.

ninja is already installed in the VM prepare step.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018jew8MXh98AHvSZBxz7Wn5
@jcelerier
jcelerier merged commit 8b12bce into master Aug 22, 2026
39 of 90 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant