0.15.0: mechanisms in features, build.mcpp-first configuration, the runtime closure in the payload, deps without mcpp-deps, Linux C++ library alignment - #32
Open
speak-agent wants to merge 3 commits into
Conversation
…build with mcpp's clang, and each vcpkg triplet is its own installation
…-first configuration, the Qt SDK from options, QT_ROOT_DIR or the project's payload, deps actions without mcpp-deps, and docs/plugin-development.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
mcpp is a general engine with a framework for build plugins. Plugins come from this package, from third parties, or from the project itself, and
build.mcppis where a project uses them. 0.15.0 brings the collection in line with that design. The architecture and ecosystem plan is.agents/docs/2026-09-26-plugins-0.15-architecture-plan.md, and the conventions aredocs/plugin-development.md(new).Features state mechanisms. A feature declares only the tools its own actions run.
rules-qt-xim,rules-qt-xim-baseandrules-qt-xim-addonsare removed. They pinned Qt 6.11.1 and, on Linux, glib, zstd and zlib.rules-qtfinds the SDK fromoptions::rootinbuild.mcpp, thenQT_ROOT_DIR, then a Qt payload the project declares in its own[xlings]table at the version it chooses. It records the level that decided as the factrules-qt.sdk.rules-qtwarns under a libc++ toolchain, because Qt's official build uses libstdc++.No helper program. The deps actions run the installer directly:
vcpkg install, configured through its own arguments:--vcpkg-root,--disable-metrics, short build and package trees, and vcpkg's own install-root lock;cmake -Pover a script the member writes, which configures, builds and installs, or empties and extracts.tools/deps_main.cppand themcpp-depstarget are removed, so consumers droptools = ["mcpp-deps"]from the edge.Dependencies built with the program's C++ standard library on Linux.
<arch>-linux-libcxxand builds ports with mcpp's clang.<install root>/<triplet>/<triplet>.Docs. The README is now about 100 lines, down from 1113. Per-member detail moved to
docs/<member>.md, anddocs/plugin-development.mdis new.Breaking changes. Each takes one or two lines to migrate:
rules-qt-xim*→rules-qtplus"xim:qt-base" = "<version>"in[xlings];tools = ["mcpp-deps"]from the edge;prefixinstead of a hard-codedvcpkg_installed/<triplet>.CI.
qt-sdk-consumer(all three SDK levels), a Linux Widgets run and pack that checks libdbus, xkbcommon and fontconfig in the packed tree, and the VC++ runtime beside the program and in the packed tree on Windows.QT_ROOT_DIR, payload) were checked locally.