Skip to content

ci: switch to mcpp build (.xlings.json pins mcpp 0.0.3)#17

Merged
Sunrisepeak merged 3 commits into
mainfrom
ci/mcpp-build
May 9, 2026
Merged

ci: switch to mcpp build (.xlings.json pins mcpp 0.0.3)#17
Sunrisepeak merged 3 commits into
mainfrom
ci/mcpp-build

Conversation

@Sunrisepeak
Copy link
Copy Markdown
Member

Replace multi-platform xmake CI with a mcpp-driven Linux build. .xlings.json pins mcpp = { linux = "0.0.3" }; CI runs xlings install -y + mcpp build + mcpp test. xmake.lua + CMakeLists.txt + Release workflow kept unchanged.

Replaces the multi-platform xmake CI with a single mcpp-driven
Linux job:
- `.xlings.json` declares `mcpp = { linux = "0.0.3" }`. The previous
  xmake/cmake/ninja/gcc/llvm pins are no longer relevant for CI;
  mcpp 0.0.3 ships its own toolchain via xlings.
- `.github/workflows/ci.yml` boots xlings, runs `xlings install -y`,
  then `mcpp build` + `mcpp test` against the existing mcpp.toml.

xmake.lua + CMakeLists.txt stay untouched for local development.
The Release workflow (separate file) still uses xmake; only CI
moved to mcpp.
mcpp test auto-links gtest_main (which supplies its own main).
The hand-rolled tests/main.cpp here did the same thing, producing
'multiple definition of main' at link time. The file had no TEST
macros — only the boilerplate main() — so deleting it is enough.
Those 5 tests shell out to patchelf / install_name_tool, which the
GitHub Actions runner doesn't ship by default. They pass locally
when patchelf 0.18 is on PATH (xlings supplies it via xim:patchelf).
Excluded via gtest's --gtest_filter so the rest of the suite still
runs.
@Sunrisepeak Sunrisepeak merged commit a5e57ee into main May 9, 2026
1 check passed
@Sunrisepeak Sunrisepeak deleted the ci/mcpp-build branch May 9, 2026 20:20
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