summaryrefslogtreecommitdiff
path: root/src/buildtool/execution_api/remote/bazel/bazel_action.cpp
diff options
context:
space:
mode:
authorMaksim Denisov <denisov.maksim@huawei.com>2024-07-09 14:36:54 +0200
committerMaksim Denisov <denisov.maksim@huawei.com>2024-07-12 15:13:52 +0200
commit5057bd9e9a55fd8423ad7112086a3cafd3162e2c (patch)
treef96e51b2f8a24eb4f2553855bac8044c3b60f40d /src/buildtool/execution_api/remote/bazel/bazel_action.cpp
parent2e2a3083a21823aa04afa0f02c38b612ca4d1045 (diff)
downloadjustbuild-5057bd9e9a55fd8423ad7112086a3cafd3162e2c.tar.gz
Pack arguments of CreateActionDigestFromCommandLine to a struct
Diffstat (limited to 'src/buildtool/execution_api/remote/bazel/bazel_action.cpp')
-rw-r--r--src/buildtool/execution_api/remote/bazel/bazel_action.cpp32
1 files changed, 19 insertions, 13 deletions
diff --git a/src/buildtool/execution_api/remote/bazel/bazel_action.cpp b/src/buildtool/execution_api/remote/bazel/bazel_action.cpp
index f96f4774..74634838 100644
--- a/src/buildtool/execution_api/remote/bazel/bazel_action.cpp
+++ b/src/buildtool/execution_api/remote/bazel/bazel_action.cpp
@@ -14,6 +14,7 @@
#include "src/buildtool/execution_api/remote/bazel/bazel_action.hpp"
+#include <optional>
#include <utility> // std::move
#include "src/buildtool/execution_api/bazel_msg/bazel_blob_container.hpp"
@@ -95,17 +96,22 @@ auto BazelAction::CreateBundlesForAction(BazelBlobContainer* blobs,
bazel_re::Digest const& exec_dir,
bool do_not_cache) const noexcept
-> bazel_re::Digest {
- return BazelMsgFactory::CreateActionDigestFromCommandLine(
- cmdline_,
- exec_dir,
- output_files_,
- output_dirs_,
- env_vars_,
- properties_,
- do_not_cache,
- timeout_,
- blobs == nullptr ? std::nullopt
- : std::make_optional([&blobs](BazelBlob&& blob) {
- blobs->Emplace(std::move(blob));
- }));
+ using StoreFunc = BazelMsgFactory::ActionDigestRequest::BlobStoreFunc;
+ std::optional<StoreFunc> store_blob = std::nullopt;
+ if (blobs != nullptr) {
+ store_blob = [&blobs](BazelBlob&& blob) {
+ blobs->Emplace(std::move(blob));
+ };
+ }
+ BazelMsgFactory::ActionDigestRequest request{
+ .command_line = &cmdline_,
+ .output_files = &output_files_,
+ .output_dirs = &output_dirs_,
+ .env_vars = &env_vars_,
+ .properties = &properties_,
+ .exec_dir = &exec_dir,
+ .timeout = timeout_,
+ .skip_action_cache = do_not_cache,
+ .store_blob = std::move(store_blob)};
+ return BazelMsgFactory::CreateActionDigestFromCommandLine(request);
}