diff options
author | John Ericson <John.Ericson@Obsidian.Systems> | 2021-03-08 16:24:49 -0500 |
---|---|---|
committer | John Ericson <John.Ericson@Obsidian.Systems> | 2023-08-25 10:01:25 -0400 |
commit | 5e3986f59cb58f48186a49dcec7aa317b4787522 (patch) | |
tree | 7c746838e7da6aa3677e06cc90766d014c06cfd5 /src/libstore/build/substitution-goal.hh | |
parent | 692074f7142fcf8ede1266b6d8cbbd5feaf3221f (diff) |
Adapt scheduler to work with dynamic derivations
To avoid dealing with an optional `drvPath` (because we might not know
it yet) everywhere, make an `CreateDerivationAndRealiseGoal`. This goal
just builds/substitutes the derivation file, and then kicks of a build
for that obtained derivation; in other words it does the chaining of
goals when the drv file is missing (as can already be the case) or
computed (new case).
This also means the `getDerivation` state can be removed from
`DerivationGoal`, which makes the `BasicDerivation` / in memory case and
`Derivation` / drv file file case closer together.
The map type is factored out for clarity, and because we will soon hvae
a second use for it (`Derivation` itself).
Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
Diffstat (limited to 'src/libstore/build/substitution-goal.hh')
-rw-r--r-- | src/libstore/build/substitution-goal.hh | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/libstore/build/substitution-goal.hh b/src/libstore/build/substitution-goal.hh index 1b693baa1..1d389d328 100644 --- a/src/libstore/build/substitution-goal.hh +++ b/src/libstore/build/substitution-goal.hh @@ -117,7 +117,9 @@ public: /* Called by destructor, can't be overridden */ void cleanup() override final; - JobCategory jobCategory() override { return JobCategory::Substitution; }; + JobCategory jobCategory() const override { + return JobCategory::Substitution; + }; }; } |