[M5] cargoxx add without version (wildcard)

This commit is contained in:
2026-05-10 00:56:15 +00:00
parent 8b87d98083
commit b0818846b2
5 changed files with 41 additions and 18 deletions

View File

@@ -78,11 +78,15 @@ 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`,
- `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.
already-declared deps. Version is now optional; an omitted version
is stored as `"*"` and resolves against the linkdb's first matching
recipe. Generated `flake.nix` continues to track the `nixos-unstable`
branch when the lockfile carries no rev.
- `util::satisfies` treats `version == "*"` as a match against any
range, mirroring the existing `range == "*"` shortcut.
- `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`