Skip to content

feat: add mcpp build support (mcpp.toml)#9

Merged
Sunrisepeak merged 1 commit intomainfrom
feat/add-mcpp-support
May 9, 2026
Merged

feat: add mcpp build support (mcpp.toml)#9
Sunrisepeak merged 1 commit intomainfrom
feat/add-mcpp-support

Conversation

@Sunrisepeak
Copy link
Copy Markdown
Member

Summary

Adds an mcpp.toml manifest alongside the existing xmake.lua so
llmapi can be consumed/built via either ecosystem.

  • mcpplibs.llmapi@0.2.3, kind = "lib". Lib-root convention picks
    src/llmapi.cppm automatically (already exports
    module mcpplibs.llmapi; + re-exports every partition).
  • [build].include_dirs = ["src/json"]src/json/json.cppm does
    #include <json.hpp>.
  • Direct deps: mbedtls = "3.6.1", mcpplibs.tinyhttps = "0.2.1".
    mbedtls is technically a transitive of tinyhttps, but mcpp 0.0.2
    doesn't propagate dep includes through the graph yet, so we list
    it explicitly. Will be cleaned up once that lands upstream.

After merge a 0.2.4 tag will be cut so the
mcpp-community/mcpp-index
descriptor can point at the first tag containing mcpp.toml.

Test plan

  • mcpp build (musl-static) — libllmapi.a contains 125 objects
    (llmapi + tinyhttps + mbedtls)
  • CI green (xmake build path unchanged)

Adds the mcpp 0.0.2+ manifest alongside the existing xmake.lua. Both
build paths coexist; consumers of either ecosystem can pick.

Manifest highlights:
* `mcpplibs.llmapi@0.2.3`, kind = "lib"; lib root convention picks
  `src/llmapi.cppm` (already exports `module mcpplibs.llmapi;` and
  re-exports every partition).
* `[build].include_dirs = ["src/json"]` — needed because
  `src/json/json.cppm` does `#include <json.hpp>`.
* Direct deps: `mbedtls = "3.6.1"` and `mcpplibs.tinyhttps = "0.2.1"`.
  mbedtls is technically a transitive (tinyhttps depends on it), but
  mcpp 0.0.2 doesn't propagate dep includes through the graph yet, so
  we list it explicitly. Will be cleaned up once that lands upstream.

Adds `target/` to `.gitignore` for the same reason as tinyhttps.

Verified: `mcpp build` produces `libllmapi.a` containing 125 objects
(llmapi modules + tinyhttps modules + mbedtls translation units).
@Sunrisepeak Sunrisepeak merged commit 5655e16 into main May 9, 2026
2 of 3 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