summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMaksim Denisov <denisov.maksim@huawei.com>2024-06-11 13:39:57 +0200
committerMaksim Denisov <denisov.maksim@huawei.com>2024-06-18 12:05:10 +0200
commit5446c7433a714f1924d77003853d8e4fa3eb7e76 (patch)
treef141c1965f3073d754238aae5539ee5e1ea3a4ad /src
parent60a056f0b01515ad70ff99d08dd3d2b7475c6c37 (diff)
downloadjustbuild-5446c7433a714f1924d77003853d8e4fa3eb7e76.tar.gz
Pass ServeApi by reference to the describe function
...instead of using singleton calls.
Diffstat (limited to 'src')
-rw-r--r--src/buildtool/main/TARGETS2
-rw-r--r--src/buildtool/main/describe.cpp8
-rw-r--r--src/buildtool/main/describe.hpp2
-rw-r--r--src/buildtool/main/main.cpp1
4 files changed, 8 insertions, 5 deletions
diff --git a/src/buildtool/main/TARGETS b/src/buildtool/main/TARGETS
index b92d4738..692e21b9 100644
--- a/src/buildtool/main/TARGETS
+++ b/src/buildtool/main/TARGETS
@@ -75,6 +75,7 @@
, ["src/buildtool/build_engine/base_maps", "entity_name"]
, ["src/buildtool/build_engine/target_map", "configured_target"]
, ["src/buildtool/common", "config"]
+ , ["src/buildtool/serve_api/remote", "serve_api"]
]
, "stage": ["src", "buildtool", "main"]
, "private-deps":
@@ -87,7 +88,6 @@
, ["src/buildtool/logging", "log_level"]
, ["src/buildtool/logging", "logging"]
, ["src/buildtool/serve_api/remote", "config"]
- , ["src/buildtool/serve_api/remote", "serve_api"]
, "common"
]
}
diff --git a/src/buildtool/main/describe.cpp b/src/buildtool/main/describe.cpp
index 57a73cdb..467d382a 100644
--- a/src/buildtool/main/describe.cpp
+++ b/src/buildtool/main/describe.cpp
@@ -28,7 +28,6 @@
#include "src/buildtool/execution_api/common/create_execution_api.hpp"
#include "src/buildtool/execution_api/remote/config.hpp"
#include "src/buildtool/serve_api/remote/config.hpp"
-#include "src/buildtool/serve_api/remote/serve_api.hpp"
#endif // BOOTSTRAP_BUILD_TOOL
namespace {
@@ -268,13 +267,14 @@ auto DescribeUserDefinedRule(
auto DescribeTarget(BuildMaps::Target::ConfiguredTarget const& id,
gsl::not_null<const RepositoryConfig*> const& repo_config,
+ std::optional<gsl::not_null<const ServeApi*>> const& serve,
std::size_t jobs,
bool print_json) -> int {
#ifndef BOOTSTRAP_BUILD_TOOL
// check if target root is absent
if (repo_config->TargetRoot(id.target.ToModule().repository)->IsAbsent()) {
// check that we have a serve endpoint configured
- if (not RemoteServeConfig::Instance().RemoteAddress()) {
+ if (not serve) {
Logger::Log(LogLevel::Error,
fmt::format("Root for target {} is absent but no serve "
"endpoint was configured. Please provide "
@@ -285,7 +285,7 @@ auto DescribeTarget(BuildMaps::Target::ConfiguredTarget const& id,
// check that just serve and the client use same remote execution
// endpoint; it might make sense in the future to remove or avoid this
// check, e.g., if remote endpoints are behind proxies.
- if (not ServeApi::Instance().CheckServeRemoteExecution()) {
+ if (not(*serve)->CheckServeRemoteExecution()) {
Logger::Log(LogLevel::Error,
"Inconsistent remote execution endpoint and serve "
"endpoint configuration detected.");
@@ -302,7 +302,7 @@ auto DescribeTarget(BuildMaps::Target::ConfiguredTarget const& id,
repo_name);
return kExitFailure;
}
- if (auto dgst = ServeApi::Instance().ServeTargetDescription(
+ if (auto dgst = (*serve)->ServeTargetDescription(
*target_root_id,
*(repo_config->TargetFileName(repo_name)),
id.target.GetNamedTarget().name)) {
diff --git a/src/buildtool/main/describe.hpp b/src/buildtool/main/describe.hpp
index 7e3c8f83..3548e40f 100644
--- a/src/buildtool/main/describe.hpp
+++ b/src/buildtool/main/describe.hpp
@@ -21,10 +21,12 @@
#include "src/buildtool/build_engine/base_maps/entity_name.hpp"
#include "src/buildtool/build_engine/target_map/configured_target.hpp"
#include "src/buildtool/common/repository_config.hpp"
+#include "src/buildtool/serve_api/remote/serve_api.hpp"
[[nodiscard]] auto DescribeTarget(
BuildMaps::Target::ConfiguredTarget const& id,
gsl::not_null<const RepositoryConfig*> const& repo_config,
+ std::optional<gsl::not_null<const ServeApi*>> const& serve,
std::size_t jobs,
bool print_json) -> int;
diff --git a/src/buildtool/main/main.cpp b/src/buildtool/main/main.cpp
index 7ae42622..02b63057 100644
--- a/src/buildtool/main/main.cpp
+++ b/src/buildtool/main/main.cpp
@@ -997,6 +997,7 @@ auto main(int argc, char* argv[]) -> int {
arguments.describe.print_json)
: DescribeTarget(*id,
&repo_config,
+ serve,
arguments.common.jobs,
arguments.describe.print_json);
}