summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/buildtool/execution_api/common/TARGETS1
-rw-r--r--src/buildtool/execution_api/common/api_bundle.cpp2
-rw-r--r--src/buildtool/execution_api/local/TARGETS2
-rw-r--r--src/buildtool/execution_api/local/local_action.cpp3
-rw-r--r--src/buildtool/execution_api/local/local_action.hpp4
-rw-r--r--src/buildtool/execution_api/local/local_api.hpp12
6 files changed, 18 insertions, 6 deletions
diff --git a/src/buildtool/execution_api/common/TARGETS b/src/buildtool/execution_api/common/TARGETS
index 579412d9..2e5d14dd 100644
--- a/src/buildtool/execution_api/common/TARGETS
+++ b/src/buildtool/execution_api/common/TARGETS
@@ -50,6 +50,7 @@
]
, "private-deps":
[ ["src/buildtool/execution_api/bazel_msg", "bazel_msg"]
+ , ["src/buildtool/execution_api/local", "config"]
, ["src/buildtool/execution_api/local", "local"]
, ["src/buildtool/execution_api/remote", "bazel"]
]
diff --git a/src/buildtool/execution_api/common/api_bundle.cpp b/src/buildtool/execution_api/common/api_bundle.cpp
index 933ac1f3..411fb02f 100644
--- a/src/buildtool/execution_api/common/api_bundle.cpp
+++ b/src/buildtool/execution_api/common/api_bundle.cpp
@@ -15,6 +15,7 @@
#include "src/buildtool/execution_api/common/api_bundle.hpp"
#include "src/buildtool/execution_api/bazel_msg/bazel_common.hpp"
+#include "src/buildtool/execution_api/local/config.hpp"
#include "src/buildtool/execution_api/local/local_api.hpp"
#include "src/buildtool/execution_api/remote/bazel/bazel_api.hpp"
@@ -25,6 +26,7 @@ ApiBundle::ApiBundle(gsl::not_null<StorageConfig const*> const& storage_config,
std::optional<ServerAddress> const& remote_address)
: local{std::make_shared<LocalApi>(storage_config,
storage,
+ &LocalExecutionConfig::Instance(),
repo_config)}, // needed by remote
auth{*authentication}, // needed by remote
remote{CreateRemote(remote_address)} {}
diff --git a/src/buildtool/execution_api/local/TARGETS b/src/buildtool/execution_api/local/TARGETS
index da3e4432..2c848bf7 100644
--- a/src/buildtool/execution_api/local/TARGETS
+++ b/src/buildtool/execution_api/local/TARGETS
@@ -30,6 +30,7 @@
[ ["@", "fmt", "", "fmt"]
, ["@", "gsl", "", "gsl"]
, ["@", "grpc", "", "grpc++"]
+ , "config"
, ["src/buildtool/common", "common"]
, ["src/buildtool/common", "config"]
, ["src/buildtool/storage", "storage"]
@@ -51,7 +52,6 @@
, "private-deps":
[ ["src/buildtool/file_system", "object_type"]
, ["src/buildtool/system", "system_command"]
- , "config"
, ["src/buildtool/common", "bazel_types"]
, ["src/buildtool/file_system", "file_system_manager"]
, ["src/buildtool/execution_api/utils", "outputscheck"]
diff --git a/src/buildtool/execution_api/local/local_action.cpp b/src/buildtool/execution_api/local/local_action.cpp
index 955e6724..73d78e36 100644
--- a/src/buildtool/execution_api/local/local_action.cpp
+++ b/src/buildtool/execution_api/local/local_action.cpp
@@ -24,7 +24,6 @@
#include "src/buildtool/common/bazel_types.hpp"
#include "src/buildtool/compatibility/native_support.hpp"
#include "src/buildtool/execution_api/common/tree_reader.hpp"
-#include "src/buildtool/execution_api/local/config.hpp"
#include "src/buildtool/execution_api/local/local_cas_reader.hpp"
#include "src/buildtool/execution_api/local/local_response.hpp"
#include "src/buildtool/execution_api/utils/outputscheck.hpp"
@@ -166,7 +165,7 @@ auto LocalAction::Run(bazel_re::Digest const& action_id) const noexcept
return std::nullopt;
}
- auto cmdline = LocalExecutionConfig::GetLauncher();
+ auto cmdline = exec_config_.GetLauncher();
std::copy(cmdline_.begin(), cmdline_.end(), std::back_inserter(cmdline));
SystemCommand system{"LocalExecution"};
diff --git a/src/buildtool/execution_api/local/local_action.hpp b/src/buildtool/execution_api/local/local_action.hpp
index e62f209f..a9ffe959 100644
--- a/src/buildtool/execution_api/local/local_action.hpp
+++ b/src/buildtool/execution_api/local/local_action.hpp
@@ -28,6 +28,7 @@
#include "src/buildtool/execution_api/bazel_msg/bazel_msg_factory.hpp"
#include "src/buildtool/execution_api/common/execution_action.hpp"
#include "src/buildtool/execution_api/common/execution_response.hpp"
+#include "src/buildtool/execution_api/local/config.hpp"
#include "src/buildtool/logging/logger.hpp"
#include "src/buildtool/storage/config.hpp"
#include "src/buildtool/storage/storage.hpp"
@@ -65,6 +66,7 @@ class LocalAction final : public IExecutionAction {
Logger logger_{"LocalExecution"};
StorageConfig const& storage_config_;
Storage const& storage_;
+ LocalExecutionConfig const& exec_config_;
ArtifactDigest const root_digest_{};
std::vector<std::string> const cmdline_{};
std::vector<std::string> output_files_{};
@@ -77,6 +79,7 @@ class LocalAction final : public IExecutionAction {
explicit LocalAction(
gsl::not_null<StorageConfig const*> storage_config,
gsl::not_null<Storage const*> const& storage,
+ gsl::not_null<LocalExecutionConfig const*> const& exec_config,
ArtifactDigest root_digest,
std::vector<std::string> command,
std::vector<std::string> output_files,
@@ -85,6 +88,7 @@ class LocalAction final : public IExecutionAction {
std::map<std::string, std::string> const& properties) noexcept
: storage_config_{*storage_config},
storage_{*storage},
+ exec_config_{*exec_config},
root_digest_{std::move(root_digest)},
cmdline_{std::move(command)},
output_files_{std::move(output_files)},
diff --git a/src/buildtool/execution_api/local/local_api.hpp b/src/buildtool/execution_api/local/local_api.hpp
index bfa1d6c6..fc133835 100644
--- a/src/buildtool/execution_api/local/local_api.hpp
+++ b/src/buildtool/execution_api/local/local_api.hpp
@@ -43,6 +43,7 @@
#include "src/buildtool/execution_api/common/tree_reader.hpp"
#include "src/buildtool/execution_api/execution_service/cas_utils.hpp"
#include "src/buildtool/execution_api/git/git_api.hpp"
+#include "src/buildtool/execution_api/local/config.hpp"
#include "src/buildtool/execution_api/local/local_action.hpp"
#include "src/buildtool/execution_api/local/local_cas_reader.hpp"
#include "src/buildtool/file_system/file_system_manager.hpp"
@@ -54,11 +55,14 @@
/// \brief API for local execution.
class LocalApi final : public IExecutionApi {
public:
- explicit LocalApi(gsl::not_null<StorageConfig const*> const& storage_config,
- gsl::not_null<Storage const*> const& storage,
- RepositoryConfig const* repo_config = nullptr) noexcept
+ explicit LocalApi(
+ gsl::not_null<StorageConfig const*> const& storage_config,
+ gsl::not_null<Storage const*> const& storage,
+ gsl::not_null<LocalExecutionConfig const*> const& exec_config,
+ RepositoryConfig const* repo_config = nullptr) noexcept
: storage_config_{*storage_config},
storage_{*storage},
+ exec_config_{*exec_config},
repo_config_{repo_config} {}
[[nodiscard]] auto CreateAction(
@@ -71,6 +75,7 @@ class LocalApi final : public IExecutionApi {
-> IExecutionAction::Ptr final {
return IExecutionAction::Ptr{new LocalAction{&storage_config_,
&storage_,
+ &exec_config_,
root_digest,
command,
output_files,
@@ -411,6 +416,7 @@ class LocalApi final : public IExecutionApi {
private:
StorageConfig const& storage_config_;
Storage const& storage_;
+ LocalExecutionConfig const& exec_config_;
RepositoryConfig const* const repo_config_ = nullptr;
};