diff --git a/src/main.cpp b/src/main.cpp index a27e981..42b4e9f 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -270,9 +270,9 @@ int main(int argc, char* argv[]) { for (auto& step : plan.steps) { std::cout << " " << step.name << " (" << step.dependencies.size() << " deps"; - if (!step.features.empty()) { + if (!step.resolved.features.empty()) { std::cout << ", features:"; - for (auto& [k, f] : step.features) { + for (auto& [k, f] : step.resolved.features) { if (f.enabled && !f.flag.empty()) { std::cout << " " << k; } @@ -280,7 +280,7 @@ int main(int argc, char* argv[]) { } std::cout << ")\n"; } - return plan.steps.empty() && plan.missing.empty() ? 0 : 0; + return plan.missing.empty() ? 0 : 1; } catch (const std::runtime_error& e) { handle_parse_error(file_arg, source, e); return 1; diff --git a/src/resolve/plan.cpp b/src/resolve/plan.cpp index 80e1267..c8d794d 100644 --- a/src/resolve/plan.cpp +++ b/src/resolve/plan.cpp @@ -1,7 +1,6 @@ #include "kappa/resolve/plan.hpp" #include "kappa/config/merge.hpp" -#include #include namespace kappa::resolve { @@ -23,15 +22,14 @@ BuildPlan resolve(const dsl::SystemConfig& cfg, const Registry& registry) { BuildStep step; step.name = pkg.name; - step.package = pkg; - step.features = resolved.features; - step.config = resolved.config; + step.package = &pkg; + step.resolved = std::move(resolved); for (auto& dep : pkg.depends) { if (!dep.feature.empty()) { - auto fit = step.features.find(dep.feature); - if (fit == step.features.end() || !fit->second.enabled) { - continue; // feature-gated and disabled + auto fit = step.resolved.features.find(dep.feature); + if (fit == step.resolved.features.end() || !fit->second.enabled) { + continue; } } step.dependencies.push_back({dep.name, dep.version});