[M5] verify-curated-db.sh + boost recipe (header-only)

This commit is contained in:
2026-05-10 01:42:20 +00:00
parent b0818846b2
commit f3d18b7939
29 changed files with 412 additions and 17 deletions

View File

@@ -87,6 +87,23 @@ All notable changes to cargoxx will be documented in this file.
branch when the lockfile carries no rev.
- `util::satisfies` treats `version == "*"` as a match against any
range, mirroring the existing `range == "*"` shortcut.
- `scripts/verify-curated-db.sh` plus per-package using-snippets at
`scripts/curated-snippets/<pkg>.cpp`. For each curated package the
script scaffolds a fresh project, `cargoxx add`s the dep, drops in a
snippet that exercises the library's API, and runs `cargoxx build`,
asserting the binary is produced. 21/25 packages pass against
`nixos-unstable`; the remaining 4 are documented as skipped:
`catch2`/`gtest` (their default linkdb targets ship their own
`main()` which collides with the snippet), `grpc` (needs `protobuf`
declared as a transitive dep — cross-package transitives are out of
v0.1 scope), `abseil-cpp` (nixpkgs builds it against libstdc++ while
our flake uses libc++ → ABI mismatch on the linker step).
- `data/linkdb.json`: `boost` recipe is now header-only —
`find_package(Boost REQUIRED)` + `Boost::headers`. Boost 1.89's
`BoostConfig.cmake` searches for separately-installed
`boost_<comp>Config.cmake` files that nixpkgs doesn't ship, so
the previous `COMPONENTS` form failed at configure time.
Linkdb-component tests now use `abseil-cpp` for component coverage.
- `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`