-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathmcpp.toml
More file actions
69 lines (68 loc) · 3.2 KB
/
Copy pathmcpp.toml
File metadata and controls
69 lines (68 loc) · 3.2 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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# mcpp-index is simultaneously the package index (pkgs/) AND a mcpp workspace that
# tests it: a virtual workspace whose members are per-library TEST projects under
# tests/examples/ — each consumes this repo's own packages and asserts behavior in
# tests/*.cpp. The whole suite runs as a single shell-free command,
# `mcpp test --workspace` (or `mcpp test -p <member>`). "Eat our own dog food."
# See .agents/docs/2026-06-29-mcpp-native-workspace-ci-design.md and
# mcpp .agents/docs/2026-06-30-workspace-test-and-zero-shell-index-design.md.
[workspace]
members = [
"tests/examples/archive",
"tests/examples/asio-module",
"tests/examples/asio-ssl",
"tests/examples/build-mcpp",
"tests/examples/catch2",
"tests/examples/catch2-main",
"tests/examples/catch2-v2",
"tests/examples/catch2-v2-main",
"tests/examples/cjson",
"tests/examples/core",
"tests/examples/eigen",
"tests/examples/ffmpeg",
"tests/examples/ffmpeg-module",
"tests/examples/fmtlib.fmt",
"tests/examples/gui-stack",
"tests/examples/imgui",
"tests/examples/imgui-module",
"tests/examples/imgui-window",
"tests/examples/marzer.tomlplusplus",
"tests/examples/nlohmann.json",
"tests/examples/openblas",
"tests/examples/openssl",
"tests/examples/opencv-module",
"tests/examples/opencv-module-dnn",
"tests/examples/opencv-module-unifont",
"tests/examples/spdlog",
"tests/examples/spdlog-compiled",
"tests/examples/tinyhttps",
]
# ── The index redirect, hoisted to the workspace root ───────────────────
# Members inherit this, and the relative `path` resolves against the
# WORKSPACE ROOT rather than the member directory (mcpp#224, fixed in
# 0.0.97) — so the 13 members that consume `compat` no longer each repeat
# `path = "../../.."`, and member depth stops mattering.
#
# Why exactly ONE entry, and why `compat` specifically:
#
# * The key is looked up by NAMESPACE. An index declared under a name that
# is not a namespace any dependency asks for is never registered, and
# resolution silently falls through to the published remote index — the
# checkout under test is then not what is being tested at all.
# * Declaring the same path under several namespaces does register them,
# as N separate project repos, and every lookup afterwards fails with an
# N-way ambiguity between what is physically one descriptor
# (mcpp#238 / xlings#374 — now a loud error rather than a silent exit 1).
#
# So the root can carry exactly one namespace, and `compat` is the one that
# pays: 13 members against 10 for everything else combined. A member that
# needs a different namespace declares its own `[indices]`, which REPLACES
# this table rather than merging with it — which is precisely what keeps it
# at one repo per member.
#
# A member inheriting this still resolves OTHER namespaces from the
# published remote index. tests/examples/asio-ssl leans on that deliberately:
# asio itself comes from the published index while its `ssl` feature dep,
# compat.openssl, resolves from this checkout — which is what lets an
# unmerged compat descriptor be tested through a feature that activates it.
[indices]
compat = { path = "." }