-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathmcpp.toml
More file actions
53 lines (46 loc) · 2.11 KB
/
Copy pathmcpp.toml
File metadata and controls
53 lines (46 loc) · 2.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
[package]
name = "mcpp"
version = "0.0.61"
description = "Modern C++ build & package management tool"
license = "Apache-2.0"
authors = ["mcpp-community"]
repo = "https://github.com/mcpp-community/mcpp"
[build]
# nlohmann/json.hpp lives in src/libs/json/; expose it to the global
# module fragment `#include <json.hpp>` in src/libs/json.cppm.
include_dirs = ["src/libs/json"]
[toolchain]
default = "gcc@16.1.0"
macos = "llvm@20.1.7"
windows = "llvm@20.1.7"
# Per-target overrides: `mcpp build --target x86_64-linux-musl` (or the
# four-segment form `x86_64-unknown-linux-musl`) picks musl-gcc 15.1 + full
# static linkage. Used by .github/workflows/release.yml to produce a
# portable static binary that drops in anywhere with no ELF interp / RUNPATH
# baggage.
[target.x86_64-linux-musl]
toolchain = "gcc@15.1.0-musl"
linkage = "static"
# aarch64 (ARM64) static target. No explicit toolchain: mcpp's host-aware
# convention picks it — on an aarch64 host this is a NATIVE build (xim:musl-gcc),
# on an x86_64 host a CROSS build (xim:aarch64-linux-musl-gcc, gcc 15.1.0 from
# musl-cross-make). linkage=static is also implied by the -musl suffix; kept
# explicit for clarity. See .agents/docs/2026-06-22-aarch64-android-mvp-design.md.
[target.aarch64-linux-musl]
linkage = "static"
# Eat our own dog food: mcpp uses mcpplibs.cmdline for argument parsing.
# TOML-native namespaced form: `mcpplibs.cmdline` is the dotted subtable
# `[dependencies.mcpplibs] cmdline = "0.0.1"` ⇒ identity (mcpplibs, cmdline).
# The bootstrap mcpp used by the self-host build (xlings install mcpp, well
# past 0.0.6) understands this, so the legacy quoted form is no longer needed.
[dependencies]
mcpplibs.cmdline = "0.0.1"
# `mcpp build` ignores [dev-dependencies]; only `mcpp test` resolves them.
[dev-dependencies]
gtest = "1.15.2"
# Everything else uses M5.0 conventions:
# - sources = src/**/*.{cppm,cpp,cc,c} (default glob picks up
# the 21 .cppm modules + src/main.cpp)
# - target = mcpp (kind=bin inferred from src/main.cpp)
# - standard = c++23
# - static_stdlib = true (default; portable binary)