Merge pull request #4370 from NixOS/ca/more-precise-build-noop

Better detect when `buildPaths` would be a no-op
This commit is contained in:
Eelco Dolstra
2020-12-16 14:54:04 +01:00
committed by GitHub
+11 -3
View File
@@ -729,9 +729,17 @@ void Store::buildPaths(const std::vector<StorePathWithOutputs> & paths, BuildMod
StorePathSet paths2;
for (auto & path : paths) {
if (path.path.isDerivation())
unsupported("buildPaths");
paths2.insert(path.path);
if (path.path.isDerivation()) {
if (settings.isExperimentalFeatureEnabled("ca-derivations")) {
for (auto & outputName : path.outputs) {
if (!queryRealisation({path.path, outputName}))
unsupported("buildPaths");
}
} else
unsupported("buildPaths");
} else
paths2.insert(path.path);
}
if (queryValidPaths(paths2).size() != paths2.size())