[M5] add cargoxx add/remove (linkdb-validated)

This commit is contained in:
2026-05-10 00:26:21 +00:00
parent 0a398d1c31
commit 8b87d98083
9 changed files with 351 additions and 0 deletions

View File

@@ -78,6 +78,17 @@ All notable changes to cargoxx will be documented in this file.
and `[build]` honoring `warnings_as_errors` and `sanitizers`. Source
paths emitted relative to `build/` (i.e. prefixed with `../`).
Output is deterministic. `tests/codegen_cmake.cpp` covers 11 cases.
- `cargoxx add <pkg>@<version> [--components a,b]` edits `Cargoxx.toml`,
validates the new dep against the curated linkdb (so unknown packages
and missing components fail before any disk write), and rejects
already-declared deps. Auto-resolution against nixhub.io/lazamar is
deferred — for v0.1 the version is required.
- `cargoxx remove <pkg>` drops a declared dep from `Cargoxx.toml`,
errors when the dep is not declared. Other deps are preserved.
- End-to-end verified on a freshly-scaffolded project. `tests/cmd_add.cpp`
and `tests/cmd_remove.cpp` cover 9 cases. Known cosmetic issue:
toml++ writes top-level sections alphabetically, so `[package]` may
end up after `[dependencies]` post-mutation; logged for M6 polish.
- `cargoxx run [--release] [--bin <name>] [-- <args>...]`,
`cargoxx test [--release]`, and `cargoxx clean`. `run` builds first,
picks the binary (errors with the available list when the project