aboutsummaryrefslogtreecommitdiff
path: root/src/libstore/build/substitution-goal.hh
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2022-03-08 19:50:46 +0100
committerEelco Dolstra <edolstra@gmail.com>2022-03-08 19:56:34 +0100
commita4604f19284254ac98f19a13ff7c2216de7fe176 (patch)
tree446fa74304e4d7d9bf434f209e0804543652983a /src/libstore/build/substitution-goal.hh
parent92b8d4d8861b908a7ec500526a84155c597d6d2b (diff)
Add Store::buildPathsWithResults()
This function is like buildPaths(), except that it returns a vector of BuildResults containing the exact statuses and output paths of each derivation / substitution. This is convenient for functions like Installable::build(), because they then don't need to do another series of calls to get the outputs of CA derivations. It's also a precondition to impure derivations, where we *can't* query the output of those derivations since they're not stored in the Nix database. Note that PathSubstitutionGoal can now also return a BuildStatus.
Diffstat (limited to 'src/libstore/build/substitution-goal.hh')
-rw-r--r--src/libstore/build/substitution-goal.hh2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/libstore/build/substitution-goal.hh b/src/libstore/build/substitution-goal.hh
index d8399d2a8..946f13841 100644
--- a/src/libstore/build/substitution-goal.hh
+++ b/src/libstore/build/substitution-goal.hh
@@ -53,6 +53,8 @@ struct PathSubstitutionGoal : public Goal
/* Content address for recomputing store path */
std::optional<ContentAddress> ca;
+ void done(ExitCode result, BuildResult::Status status);
+
public:
PathSubstitutionGoal(const StorePath & storePath, Worker & worker, RepairFlag repair = NoRepair, std::optional<ContentAddress> ca = std::nullopt);
~PathSubstitutionGoal();