aboutsummaryrefslogtreecommitdiff
path: root/src/libstore/platform.cc
diff options
context:
space:
mode:
authoreldritch horrors <pennae@lix.systems>2024-08-25 13:41:56 +0200
committereldritch horrors <pennae@lix.systems>2024-08-30 10:18:28 +0000
commita5c1e73fa8e004a93e37254a3582ba91048c4550 (patch)
tree7788396907f8108a413eec22623ee01737cfb54d /src/libstore/platform.cc
parentbb161a96cf1171a5c4ed3661a0f2f5a93ac10804 (diff)
libstore: add "is dependency" info to goal
whether goal errors are reported via the `ex` member or just printed to the log depends on whether the goal is a toplevel goal or a dependency. if goals are aware of this themselves we can move error printing out of the worker loop, and since a running worker can only be used by running goals it's totally sufficient to keep a `Worker::running` flag for this Change-Id: I6b5cbe6eccee1afa5fde80653c4b968554ddd16f
Diffstat (limited to 'src/libstore/platform.cc')
-rw-r--r--src/libstore/platform.cc18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/libstore/platform.cc b/src/libstore/platform.cc
index 72757e39b..f2c023c82 100644
--- a/src/libstore/platform.cc
+++ b/src/libstore/platform.cc
@@ -29,17 +29,18 @@ std::shared_ptr<LocalDerivationGoal> LocalDerivationGoal::makeLocalDerivationGoa
const StorePath & drvPath,
const OutputsSpec & wantedOutputs,
Worker & worker,
+ bool isDependency,
BuildMode buildMode
)
{
#if __linux__
- return std::make_shared<LinuxLocalDerivationGoal>(drvPath, wantedOutputs, worker, buildMode);
+ return std::make_shared<LinuxLocalDerivationGoal>(drvPath, wantedOutputs, worker, isDependency, buildMode);
#elif __APPLE__
- return std::make_shared<DarwinLocalDerivationGoal>(drvPath, wantedOutputs, worker, buildMode);
+ return std::make_shared<DarwinLocalDerivationGoal>(drvPath, wantedOutputs, worker, isDependency, buildMode);
#elif __FreeBSD__
- return std::make_shared<FreeBSDLocalDerivationGoal>(drvPath, wantedOutputs, worker, buildMode);
+ return std::make_shared<FreeBSDLocalDerivationGoal>(drvPath, wantedOutputs, worker, isDependency, buildMode);
#else
- return std::make_shared<FallbackLocalDerivationGoal>(drvPath, wantedOutputs, worker, buildMode);
+ return std::make_shared<FallbackLocalDerivationGoal>(drvPath, wantedOutputs, worker, isDependency, buildMode);
#endif
}
@@ -48,24 +49,25 @@ std::shared_ptr<LocalDerivationGoal> LocalDerivationGoal::makeLocalDerivationGoa
const BasicDerivation & drv,
const OutputsSpec & wantedOutputs,
Worker & worker,
+ bool isDependency,
BuildMode buildMode
)
{
#if __linux__
return std::make_shared<LinuxLocalDerivationGoal>(
- drvPath, drv, wantedOutputs, worker, buildMode
+ drvPath, drv, wantedOutputs, worker, isDependency, buildMode
);
#elif __APPLE__
return std::make_shared<DarwinLocalDerivationGoal>(
- drvPath, drv, wantedOutputs, worker, buildMode
+ drvPath, drv, wantedOutputs, worker, isDependency, buildMode
);
#elif __FreeBSD__
return std::make_shared<FreeBSDLocalDerivationGoal>(
- drvPath, drv, wantedOutputs, worker, buildMode
+ drvPath, drv, wantedOutputs, worker, isDependency, buildMode
);
#else
return std::make_shared<FallbackLocalDerivationGoal>(
- drvPath, drv, wantedOutputs, worker, buildMode
+ drvPath, drv, wantedOutputs, worker, isDependency, buildMode
);
#endif
}