diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/buildtool/build_engine/target_map/absent_target_map.cpp | 4 | ||||
-rw-r--r-- | src/buildtool/build_engine/target_map/export.cpp | 2 | ||||
-rw-r--r-- | src/buildtool/build_engine/target_map/target_map.cpp | 2 | ||||
-rw-r--r-- | src/buildtool/main/analyse.cpp | 7 | ||||
-rw-r--r-- | src/buildtool/main/analyse_context.hpp | 4 | ||||
-rw-r--r-- | src/buildtool/main/main.cpp | 2 | ||||
-rw-r--r-- | src/buildtool/serve_api/serve_service/serve_server_implementation.cpp | 2 | ||||
-rw-r--r-- | src/buildtool/serve_api/serve_service/target.hpp | 10 |
8 files changed, 16 insertions, 17 deletions
diff --git a/src/buildtool/build_engine/target_map/absent_target_map.cpp b/src/buildtool/build_engine/target_map/absent_target_map.cpp index fd786539..017d25c5 100644 --- a/src/buildtool/build_engine/target_map/absent_target_map.cpp +++ b/src/buildtool/build_engine/target_map/absent_target_map.cpp @@ -76,7 +76,7 @@ void WithFlexibleVariables( target_cache_value{std::nullopt}; target_cache_value = context->target_cache->Read(*target_cache_key); bool from_just_serve = false; - if (not target_cache_value and context->serve) { + if (not target_cache_value and context->serve != nullptr) { auto task = fmt::format("[{},{}]", key.target.ToString(), PruneJson(effective_config.ToJson()).dump()); @@ -202,7 +202,7 @@ auto BuildMaps::Target::CreateAbsentTargetVariablesMap( auto /*subcaller*/, auto key) { std::optional<std::vector<std::string>> vars; - if (context->serve) { + if (context->serve != nullptr) { vars = context->serve->ServeTargetVariables( key.target_root_id, key.target_file, key.target); } diff --git a/src/buildtool/build_engine/target_map/export.cpp b/src/buildtool/build_engine/target_map/export.cpp index f3f4e97a..2d92bed6 100644 --- a/src/buildtool/build_engine/target_map/export.cpp +++ b/src/buildtool/build_engine/target_map/export.cpp @@ -143,7 +143,7 @@ void ExportRule( #ifndef BOOTSTRAP_BUILD_TOOL // if not found locally, try the serve endpoint - if (not target_cache_value and context->serve) { + if (not target_cache_value and context->serve != nullptr) { Logger::Log(LogLevel::Debug, "Querying serve endpoint for export target {}", key.target.ToString()); diff --git a/src/buildtool/build_engine/target_map/target_map.cpp b/src/buildtool/build_engine/target_map/target_map.cpp index c474596a..7bc74800 100644 --- a/src/buildtool/build_engine/target_map/target_map.cpp +++ b/src/buildtool/build_engine/target_map/target_map.cpp @@ -1905,7 +1905,7 @@ auto CreateTargetMap( else if (context->repo_config ->TargetRoot(key.target.ToModule().repository) ->IsAbsent()) { - if (not context->serve) { + if (context->serve == nullptr) { (*logger)( fmt::format("Root for target {} is absent, but no serve " "endpoint was configured. Please provide " diff --git a/src/buildtool/main/analyse.cpp b/src/buildtool/main/analyse.cpp index 13214463..f1d37af9 100644 --- a/src/buildtool/main/analyse.cpp +++ b/src/buildtool/main/analyse.cpp @@ -134,11 +134,12 @@ namespace Target = BuildMaps::Target; AnalysedTargetPtr target{}; // we should only report served export targets if a serve endpoint exists - bool has_serve = context->serve.has_value(); - std::atomic<bool> done{false}; - std::condition_variable cv{}; + bool const has_serve = context->serve != nullptr; auto reporter = ExportsProgressReporter::Reporter( context->statistics, context->progress, has_serve, logger); + + std::atomic<bool> done{false}; + std::condition_variable cv{}; auto observer = std::thread([reporter, &done, &cv]() { reporter(&done, &cv); }); diff --git a/src/buildtool/main/analyse_context.hpp b/src/buildtool/main/analyse_context.hpp index de3b4980..9999ae43 100644 --- a/src/buildtool/main/analyse_context.hpp +++ b/src/buildtool/main/analyse_context.hpp @@ -15,8 +15,6 @@ #ifndef INCLUDED_SRC_BUILDOOL_MAIN_ANALYSE_CONTEXT_HPP #define INCLUDED_SRC_BUILDOOL_MAIN_ANALYSE_CONTEXT_HPP -#include <optional> - #include "gsl/gsl" #include "src/buildtool/common/repository_config.hpp" #include "src/buildtool/common/statistics.hpp" @@ -29,7 +27,7 @@ struct AnalyseContext final { gsl::not_null<ActiveTargetCache const*> const target_cache; gsl::not_null<Statistics*> const statistics; gsl::not_null<Progress*> const progress; - std::optional<ServeApi> const& serve; + ServeApi const* const serve = nullptr; }; #endif // INCLUDED_SRC_BUILDOOL_MAIN_ANALYSE_CONTEXT_HPP diff --git a/src/buildtool/main/main.cpp b/src/buildtool/main/main.cpp index 1e956cc8..a9aea2eb 100644 --- a/src/buildtool/main/main.cpp +++ b/src/buildtool/main/main.cpp @@ -1010,7 +1010,7 @@ auto main(int argc, char* argv[]) -> int { .target_cache = &Storage::Instance().TargetCache(), .statistics = &stats, .progress = &exports_progress, - .serve = serve}; + .serve = serve ? &*serve : nullptr}; auto result = AnalyseTarget(&analyse_ctx, id, diff --git a/src/buildtool/serve_api/serve_service/serve_server_implementation.cpp b/src/buildtool/serve_api/serve_service/serve_server_implementation.cpp index c28a2a71..aa139dae 100644 --- a/src/buildtool/serve_api/serve_service/serve_server_implementation.cpp +++ b/src/buildtool/serve_api/serve_service/serve_server_implementation.cpp @@ -107,7 +107,7 @@ auto ServeServerImpl::Run(RemoteServeConfig const& serve_config, } SourceTreeService sts{serve_config, &apis}; - TargetService ts{serve_config, serve, &apis}; + TargetService ts{serve_config, &apis, serve ? &*serve : nullptr}; ConfigurationService cs{}; grpc::ServerBuilder builder; diff --git a/src/buildtool/serve_api/serve_service/target.hpp b/src/buildtool/serve_api/serve_service/target.hpp index 0b657e9a..f0396ae6 100644 --- a/src/buildtool/serve_api/serve_service/target.hpp +++ b/src/buildtool/serve_api/serve_service/target.hpp @@ -39,10 +39,10 @@ // The target-level cache service. class TargetService final : public justbuild::just_serve::Target::Service { public: - TargetService(RemoteServeConfig const& serve_config, - std::optional<ServeApi> const& serve, - gsl::not_null<ApiBundle const*> const& apis) noexcept - : serve_config_{serve_config}, serve_{serve}, apis_{*apis} {} + explicit TargetService(RemoteServeConfig const& serve_config, + gsl::not_null<ApiBundle const*> const& apis, + ServeApi const* const serve = nullptr) noexcept + : serve_config_{serve_config}, apis_{*apis}, serve_{serve} {} // Given a target-level caching key, returns the computed value. In doing // so, it can build on the associated endpoint passing the @@ -121,8 +121,8 @@ class TargetService final : public justbuild::just_serve::Target::Service { private: RemoteServeConfig const& serve_config_; - std::optional<ServeApi> const& serve_; ApiBundle const& apis_; + ServeApi const* const serve_ = nullptr; std::shared_ptr<Logger> logger_{std::make_shared<Logger>("target-service")}; // type of dispatch list; reduces verbosity |