diff options
Diffstat (limited to 'src/buildtool/common')
-rw-r--r-- | src/buildtool/common/TARGETS | 6 | ||||
-rw-r--r-- | src/buildtool/common/repository_config.cpp | 8 | ||||
-rw-r--r-- | src/buildtool/common/repository_config.hpp | 4 |
3 files changed, 9 insertions, 9 deletions
diff --git a/src/buildtool/common/TARGETS b/src/buildtool/common/TARGETS index be4246f0..d8f48a8e 100644 --- a/src/buildtool/common/TARGETS +++ b/src/buildtool/common/TARGETS @@ -127,12 +127,10 @@ , ["src/buildtool/file_system", "file_root"] , ["src/buildtool/file_system", "git_cas"] , ["src/buildtool/multithreading", "atomic_value"] - ] - , "stage": ["src", "buildtool", "common"] - , "private-deps": - [ ["src/utils/automata", "dfa_minimizer"] , ["src/buildtool/storage", "storage"] ] + , "stage": ["src", "buildtool", "common"] + , "private-deps": [["src/utils/automata", "dfa_minimizer"]] } , "user_structs": { "type": ["@", "rules", "CC", "library"] diff --git a/src/buildtool/common/repository_config.cpp b/src/buildtool/common/repository_config.cpp index a3b81de1..d26ba55b 100644 --- a/src/buildtool/common/repository_config.cpp +++ b/src/buildtool/common/repository_config.cpp @@ -14,7 +14,6 @@ #include "src/buildtool/common/repository_config.hpp" -#include "src/buildtool/storage/storage.hpp" #include "src/utils/automata/dfa_minimizer.hpp" auto RepositoryConfig::RepositoryInfo::BaseContentDescription() const @@ -35,15 +34,16 @@ auto RepositoryConfig::RepositoryInfo::BaseContentDescription() const return std::nullopt; } -auto RepositoryConfig::RepositoryKey(std::string const& repo) const noexcept +auto RepositoryConfig::RepositoryKey(Storage const& storage, + std::string const& repo) const noexcept -> std::optional<std::string> { auto const& unique = DeduplicateRepo(repo); if (auto const* data = Data(unique)) { // compute key only once (thread-safe) return data->key.SetOnceAndGet( - [this, &unique]() -> std::optional<std::string> { + [this, &storage, &unique]() -> std::optional<std::string> { if (auto graph = BuildGraphForRepository(unique)) { - auto const& cas = Storage::Instance().CAS(); + auto const& cas = storage.CAS(); if (auto digest = cas.StoreBlob(graph->dump(2))) { return ArtifactDigest{*digest}.hash(); } diff --git a/src/buildtool/common/repository_config.hpp b/src/buildtool/common/repository_config.hpp index ea463d43..8c5c29a5 100644 --- a/src/buildtool/common/repository_config.hpp +++ b/src/buildtool/common/repository_config.hpp @@ -28,6 +28,7 @@ #include "src/buildtool/file_system/file_root.hpp" #include "src/buildtool/file_system/git_cas.hpp" #include "src/buildtool/multithreading/atomic_value.hpp" +#include "src/buildtool/storage/storage.hpp" class RepositoryConfig { @@ -136,7 +137,8 @@ class RepositoryConfig { // Obtain repository's cache key if the repository is content fixed or // std::nullopt otherwise. - [[nodiscard]] auto RepositoryKey(std::string const& repo) const noexcept + [[nodiscard]] auto RepositoryKey(Storage const& storage, + std::string const& repo) const noexcept -> std::optional<std::string>; // used for testing |