[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

@@ -10,11 +10,17 @@ export namespace cargoxx::resolver {
// What `nix eval nixpkgs#<pkg>` reports for a package: a confirmation that
// the attribute exists, a best-effort version string, and the realized
// nix-store path so later probes can scan its installed CMake configs.
// nix-store path(s) so later probes can scan its installed CMake configs.
//
// Multi-output packages (boost, openssl, llvm, ...) expose CMake configs
// in their `dev` output, not in the default `out`. When the package has
// a separate dev output its store path is captured here so callers can
// scan it preferentially.
struct NixpkgsInfo {
std::string attr; // the queried name, e.g. "simdjson"
std::string version; // empty when the derivation has no version
std::string out_path; // absolute /nix/store/... path
std::string attr; // the queried name, e.g. "simdjson"
std::string version; // empty when the derivation has no version
std::string out_path; // default output's absolute /nix/store/... path
std::string dev_path; // dev output's path; empty when no dev output
};
// Pure parser exposed for unit testing. Accepts the raw JSON returned by