[M5+] nix-cmake-scan walks the dev output for multi-output packages

This commit is contained in:
2026-05-10 13:29:45 +00:00
parent 1604b1d5a8
commit 54da546ebc
5 changed files with 80 additions and 8 deletions

View File

@@ -91,6 +91,18 @@ All notable changes to cargoxx will be documented in this file.
6 cases against fixtures derived from a real fmt 10.2.1 response;
`tests/devbox_resolve_live.cpp` (gated by `CARGOXX_NETWORK_TESTS=1`)
hits the live API.
- Fix: `nix_cmake_scan` walked only the package's default output. For
multi-output Nix packages — `boost`, `openssl`, `libllvm`,
`libclang`, glib, … — CMake configs live in the `dev` output
(`<store>/lib/cmake/llvm/LLVMConfig.cmake`), not under the default
output, so `cargoxx add libllvm` (or any other multi-output dep)
failed with "Conan/vcpkg/nix-scan all empty". `NixpkgsInfo` now
carries an optional `dev_path`; the `nix eval` apply expression
reports `if p ? dev then p.dev.outPath else ""`. `discover` scans
the dev output preferentially and falls back to `out`. Live
verified: `cargoxx add libllvm` now reaches the verify-link step
(the linker-time libstdc++/libc++ ABI mismatch is a separate
documented limit and applies to abseil-cpp too).
- Fix: pinned-dep `buildInputs` line used the curated linkdb's
`nixpkgs_attr` (e.g. `fmt_10`) regardless of the pinned rev, so
`cargoxx add fmt@12.1.0` emitted `pkgs_nixpkgs_fmt_12_1_0.fmt_10`