diff options
Diffstat (limited to 'src')
9 files changed, 16 insertions, 13 deletions
diff --git a/src/buildtool/build_engine/target_map/built_in_rules.cpp b/src/buildtool/build_engine/target_map/built_in_rules.cpp index bac1f5cd..a34dfb03 100644 --- a/src/buildtool/build_engine/target_map/built_in_rules.cpp +++ b/src/buildtool/build_engine/target_map/built_in_rules.cpp @@ -183,7 +183,8 @@ void FileGenRuleWithDeps( auto stage = ExpressionPtr{Expression::map_t{ file_name_val->String(), ExpressionPtr{ArtifactDescription{ - ArtifactDigest::Create(data_val->String()), ObjectType::File}}}}; + ArtifactDigest::Create<ObjectType::File>(data_val->String()), + ObjectType::File}}}}; auto vars_set = std::unordered_set<std::string>{}; vars_set.insert(param_vars->begin(), param_vars->end()); diff --git a/src/buildtool/build_engine/target_map/target_map.cpp b/src/buildtool/build_engine/target_map/target_map.cpp index ac06250b..760e8306 100644 --- a/src/buildtool/build_engine/target_map/target_map.cpp +++ b/src/buildtool/build_engine/target_map/target_map.cpp @@ -582,7 +582,8 @@ void withDependencies( } blobs.emplace_back(data->String()); return ExpressionPtr{ArtifactDescription{ - ArtifactDigest::Create(data->String()), ObjectType::File}}; + ArtifactDigest::Create<ObjectType::File>(data->String()), + ObjectType::File}}; }}, {"TREE", [&trees](auto&& eval, auto const& expr, auto const& env) { diff --git a/src/buildtool/common/artifact_digest.hpp b/src/buildtool/common/artifact_digest.hpp index c9250cf9..11fab86d 100644 --- a/src/buildtool/common/artifact_digest.hpp +++ b/src/buildtool/common/artifact_digest.hpp @@ -70,7 +70,7 @@ class ArtifactDigest { return std::equal_to<bazel_re::Digest>{}(*this, other); } - template <ObjectType kType = ObjectType::File> + template <ObjectType kType> [[nodiscard]] static auto Create(std::string const& content) noexcept -> ArtifactDigest { if constexpr (kType == ObjectType::Tree) { diff --git a/src/buildtool/execution_api/bazel_msg/bazel_blob.hpp b/src/buildtool/execution_api/bazel_msg/bazel_blob.hpp index 524e2fc8..5e92a393 100644 --- a/src/buildtool/execution_api/bazel_msg/bazel_blob.hpp +++ b/src/buildtool/execution_api/bazel_msg/bazel_blob.hpp @@ -39,7 +39,8 @@ struct BazelBlob { if (not content.has_value()) { return std::nullopt; } - return BazelBlob{ArtifactDigest::Create(*content), *content}; + return BazelBlob{ArtifactDigest::Create<ObjectType::File>(*content), + *content}; } #endif // INCLUDED_SRC_BUILDTOOL_EXECUTION_API_BAZEL_MSG_BAZEL_BLOB_HPP diff --git a/src/buildtool/execution_api/bazel_msg/bazel_msg_factory.cpp b/src/buildtool/execution_api/bazel_msg/bazel_msg_factory.cpp index da1d6554..a9022e55 100644 --- a/src/buildtool/execution_api/bazel_msg/bazel_msg_factory.cpp +++ b/src/buildtool/execution_api/bazel_msg/bazel_msg_factory.cpp @@ -274,7 +274,7 @@ template <class T> auto msg = CreateDirectoryNode(dir_name); auto content_creator = [&dir] { return SerializeMessage(dir); }; auto digest_creator = [](std::string const& content) -> bazel_re::Digest { - return ArtifactDigest::Create(content); + return ArtifactDigest::Create<ObjectType::File>(content); }; return DirectoryNodeBundle::Create(msg, content_creator, digest_creator); } @@ -305,7 +305,7 @@ template <class T> auto content_creator = [&msg] { return SerializeMessage(msg); }; auto digest_creator = [](std::string const& content) -> bazel_re::Digest { - return ArtifactDigest::Create(content); + return ArtifactDigest::Create<ObjectType::File>(content); }; return CommandBundle::Create(msg, content_creator, digest_creator); @@ -341,7 +341,7 @@ template <class T> auto content_creator = [&msg] { return SerializeMessage(msg); }; auto digest_creator = [](std::string const& content) -> bazel_re::Digest { - return ArtifactDigest::Create(content); + return ArtifactDigest::Create<ObjectType::File>(content); }; return ActionBundle::Create(msg, content_creator, digest_creator); diff --git a/src/buildtool/execution_api/remote/bazel/bazel_network.cpp b/src/buildtool/execution_api/remote/bazel/bazel_network.cpp index 0252328b..5bf254e1 100644 --- a/src/buildtool/execution_api/remote/bazel/bazel_network.cpp +++ b/src/buildtool/execution_api/remote/bazel/bazel_network.cpp @@ -269,9 +269,9 @@ auto BazelNetwork::RecursivelyReadTreeLeafs( dir_map->reserve(dirs.size()); for (auto& dir : dirs) { try { - dir_map->emplace( - ArtifactDigest::Create(dir.SerializeAsString()), - std::move(dir)); + dir_map->emplace(ArtifactDigest::Create<ObjectType::File>( + dir.SerializeAsString()), + std::move(dir)); } catch (...) { return std::nullopt; } diff --git a/src/buildtool/execution_api/remote/bazel/bazel_response.cpp b/src/buildtool/execution_api/remote/bazel/bazel_response.cpp index 97fae4f9..615c0177 100644 --- a/src/buildtool/execution_api/remote/bazel/bazel_response.cpp +++ b/src/buildtool/execution_api/remote/bazel/bazel_response.cpp @@ -24,7 +24,7 @@ namespace { auto ProcessDirectoryMessage(bazel_re::Directory const& dir) noexcept -> std::optional<BazelBlob> { auto data = dir.SerializeAsString(); - auto digest = ArtifactDigest::Create(data); + auto digest = ArtifactDigest::Create<ObjectType::File>(data); return BazelBlob{std::move(digest), std::move(data)}; } diff --git a/src/buildtool/execution_engine/executor/executor.hpp b/src/buildtool/execution_engine/executor/executor.hpp index fc169200..ec280b01 100644 --- a/src/buildtool/execution_engine/executor/executor.hpp +++ b/src/buildtool/execution_engine/executor/executor.hpp @@ -382,7 +382,7 @@ class ExecutorImpl { if (not content.has_value()) { return std::nullopt; } - auto digest = ArtifactDigest::Create(*content); + auto digest = ArtifactDigest::Create<ObjectType::File>(*content); if (not api->Upload( BlobContainer{{BazelBlob{digest, std::move(*content)}}})) { return std::nullopt; diff --git a/src/buildtool/graph_traverser/graph_traverser.hpp b/src/buildtool/graph_traverser/graph_traverser.hpp index 916932fd..063c1b85 100644 --- a/src/buildtool/graph_traverser/graph_traverser.hpp +++ b/src/buildtool/graph_traverser/graph_traverser.hpp @@ -284,7 +284,7 @@ class GraphTraverser { std::vector<std::string> const& blobs) const noexcept -> bool { BlobContainer container; for (auto const& blob : blobs) { - auto digest = ArtifactDigest::Create(blob); + auto digest = ArtifactDigest::Create<ObjectType::File>(blob); Logger::Log(LogLevel::Trace, [&]() { return fmt::format( "Uploaded blob {}, its digest has id {} and size {}.", |