diff options
author | Maksim Denisov <denisov.maksim@huawei.com> | 2024-07-09 14:36:54 +0200 |
---|---|---|
committer | Maksim Denisov <denisov.maksim@huawei.com> | 2024-07-12 15:13:52 +0200 |
commit | 5057bd9e9a55fd8423ad7112086a3cafd3162e2c (patch) | |
tree | f96e51b2f8a24eb4f2553855bac8044c3b60f40d /src/buildtool/execution_api/remote/bazel/bazel_action.cpp | |
parent | 2e2a3083a21823aa04afa0f02c38b612ca4d1045 (diff) | |
download | justbuild-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.cpp | 32 |
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); } |