diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/buildtool/build_engine/target_map/TARGETS | 1 | ||||
-rw-r--r-- | src/buildtool/build_engine/target_map/built_in_rules.cpp | 20 | ||||
-rw-r--r-- | src/buildtool/build_engine/target_map/built_in_rules.hpp | 2 | ||||
-rw-r--r-- | src/buildtool/build_engine/target_map/export.cpp | 4 | ||||
-rw-r--r-- | src/buildtool/build_engine/target_map/export.hpp | 2 | ||||
-rw-r--r-- | src/buildtool/build_engine/target_map/target_map.cpp | 16 | ||||
-rw-r--r-- | src/buildtool/build_engine/target_map/target_map.hpp | 6 | ||||
-rw-r--r-- | src/buildtool/main/TARGETS | 1 | ||||
-rw-r--r-- | src/buildtool/main/analyse.cpp | 2 | ||||
-rw-r--r-- | src/buildtool/main/analyse.hpp | 2 | ||||
-rw-r--r-- | src/buildtool/main/main.cpp | 2 | ||||
-rw-r--r-- | src/buildtool/serve_api/serve_service/target.cpp | 1 |
12 files changed, 47 insertions, 12 deletions
diff --git a/src/buildtool/build_engine/target_map/TARGETS b/src/buildtool/build_engine/target_map/TARGETS index 5886f784..b753e503 100644 --- a/src/buildtool/build_engine/target_map/TARGETS +++ b/src/buildtool/build_engine/target_map/TARGETS @@ -47,6 +47,7 @@ , ["src/buildtool/build_engine/base_maps", "targets_file_map"] , ["src/buildtool/common", "config"] , ["src/buildtool/multithreading", "async_map_consumer"] + , ["src/buildtool/storage", "storage"] , ["@", "gsl", "", "gsl"] , ["@", "json", "", "json"] ] diff --git a/src/buildtool/build_engine/target_map/built_in_rules.cpp b/src/buildtool/build_engine/target_map/built_in_rules.cpp index 19a12105..d28a6ed9 100644 --- a/src/buildtool/build_engine/target_map/built_in_rules.cpp +++ b/src/buildtool/build_engine/target_map/built_in_rules.cpp @@ -339,6 +339,7 @@ void FileGenRule( const nlohmann::json& desc_json, const BuildMaps::Target::ConfiguredTarget& key, const gsl::not_null<RepositoryConfig*>& repo_config, + [[maybe_unused]] const ActiveTargetCache& /*target_cache*/, const BuildMaps::Target::TargetMap::SubCallerPtr& subcaller, const BuildMaps::Target::TargetMap::SetterPtr& setter, const BuildMaps::Target::TargetMap::LoggerPtr& logger, @@ -357,6 +358,7 @@ void SymlinkRule( const nlohmann::json& desc_json, const BuildMaps::Target::ConfiguredTarget& key, const gsl::not_null<RepositoryConfig*>& repo_config, + [[maybe_unused]] const ActiveTargetCache& /*target_cache*/, const BuildMaps::Target::TargetMap::SubCallerPtr& subcaller, const BuildMaps::Target::TargetMap::SetterPtr& setter, const BuildMaps::Target::TargetMap::LoggerPtr& logger, @@ -484,6 +486,7 @@ void TreeRule( const nlohmann::json& desc_json, const BuildMaps::Target::ConfiguredTarget& key, const gsl::not_null<RepositoryConfig*>& repo_config, + [[maybe_unused]] const ActiveTargetCache& /*target_cache*/, const BuildMaps::Target::TargetMap::SubCallerPtr& subcaller, const BuildMaps::Target::TargetMap::SetterPtr& setter, const BuildMaps::Target::TargetMap::LoggerPtr& logger, @@ -732,6 +735,7 @@ void InstallRule( const nlohmann::json& desc_json, const BuildMaps::Target::ConfiguredTarget& key, const gsl::not_null<RepositoryConfig*>& repo_config, + [[maybe_unused]] const ActiveTargetCache& /*target_cache*/, const BuildMaps::Target::TargetMap::SubCallerPtr& subcaller, const BuildMaps::Target::TargetMap::SetterPtr& setter, const BuildMaps::Target::TargetMap::LoggerPtr& logger, @@ -1317,6 +1321,7 @@ void GenericRule( const nlohmann::json& desc_json, const BuildMaps::Target::ConfiguredTarget& key, const gsl::not_null<RepositoryConfig*>& repo_config, + [[maybe_unused]] const ActiveTargetCache& /*target_cache*/, const BuildMaps::Target::TargetMap::SubCallerPtr& subcaller, const BuildMaps::Target::TargetMap::SetterPtr& setter, const BuildMaps::Target::TargetMap::LoggerPtr& logger, @@ -1394,6 +1399,7 @@ void ConfigureRule( const nlohmann::json& desc_json, const BuildMaps::Target::ConfiguredTarget& key, const gsl::not_null<RepositoryConfig*>& repo_config, + [[maybe_unused]] const ActiveTargetCache& /*target_cache*/, const BuildMaps::Target::TargetMap::SubCallerPtr& subcaller, const BuildMaps::Target::TargetMap::SetterPtr& setter, const BuildMaps::Target::TargetMap::LoggerPtr& logger, @@ -1533,7 +1539,8 @@ auto const kBuiltIns = std::unordered_map< std::function<void( const nlohmann::json&, const BuildMaps::Target::ConfiguredTarget&, - [[maybe_unused]] const gsl::not_null<RepositoryConfig*>&, + const gsl::not_null<RepositoryConfig*>&, + const ActiveTargetCache&, const BuildMaps::Target::TargetMap::SubCallerPtr&, const BuildMaps::Target::TargetMap::SetterPtr&, const BuildMaps::Target::TargetMap::LoggerPtr&, @@ -1564,6 +1571,7 @@ auto HandleBuiltin( const nlohmann::json& desc, const BuildMaps::Target::ConfiguredTarget& key, const gsl::not_null<RepositoryConfig*>& repo_config, + const ActiveTargetCache& target_cache, const BuildMaps::Target::TargetMap::SubCallerPtr& subcaller, const BuildMaps::Target::TargetMap::SetterPtr& setter, const BuildMaps::Target::TargetMap::LoggerPtr& logger, @@ -1586,8 +1594,14 @@ auto HandleBuiltin( msg), fatal); }); - (it->second)( - desc, key, repo_config, subcaller, setter, target_logger, result_map); + (it->second)(desc, + key, + repo_config, + target_cache, + subcaller, + setter, + target_logger, + result_map); return true; } } // namespace BuildMaps::Target diff --git a/src/buildtool/build_engine/target_map/built_in_rules.hpp b/src/buildtool/build_engine/target_map/built_in_rules.hpp index 5f815130..e3e2f220 100644 --- a/src/buildtool/build_engine/target_map/built_in_rules.hpp +++ b/src/buildtool/build_engine/target_map/built_in_rules.hpp @@ -21,6 +21,7 @@ #include "src/buildtool/build_engine/target_map/result_map.hpp" #include "src/buildtool/build_engine/target_map/target_map.hpp" #include "src/buildtool/common/repository_config.hpp" +#include "src/buildtool/storage/target_cache.hpp" namespace BuildMaps::Target { auto HandleBuiltin( @@ -28,6 +29,7 @@ auto HandleBuiltin( const nlohmann::json& desc, const BuildMaps::Target::ConfiguredTarget& key, const gsl::not_null<RepositoryConfig*>& repo_config, + const ActiveTargetCache& target_cache, const BuildMaps::Target::TargetMap::SubCallerPtr& subcaller, const BuildMaps::Target::TargetMap::SetterPtr& setter, const BuildMaps::Target::TargetMap::LoggerPtr& logger, diff --git a/src/buildtool/build_engine/target_map/export.cpp b/src/buildtool/build_engine/target_map/export.cpp index 25e78d32..c9aed0e3 100644 --- a/src/buildtool/build_engine/target_map/export.cpp +++ b/src/buildtool/build_engine/target_map/export.cpp @@ -97,6 +97,7 @@ void ExportRule( const nlohmann::json& desc_json, const BuildMaps::Target::ConfiguredTarget& key, const gsl::not_null<RepositoryConfig*>& repo_config, + const ActiveTargetCache& target_cache, const BuildMaps::Target::TargetMap::SubCallerPtr& subcaller, const BuildMaps::Target::TargetMap::SetterPtr& setter, const BuildMaps::Target::TargetMap::LoggerPtr& logger, @@ -117,8 +118,7 @@ void ExportRule( if (target_cache_key) { // first try to get value from local target cache - auto target_cache_value = - Storage::Instance().TargetCache().Read(*target_cache_key); + auto target_cache_value = target_cache.Read(*target_cache_key); bool from_just_serve{false}; #ifndef BOOTSTRAP_BUILD_TOOL diff --git a/src/buildtool/build_engine/target_map/export.hpp b/src/buildtool/build_engine/target_map/export.hpp index aa84f0b4..7f470706 100644 --- a/src/buildtool/build_engine/target_map/export.hpp +++ b/src/buildtool/build_engine/target_map/export.hpp @@ -21,10 +21,12 @@ #include "src/buildtool/build_engine/target_map/result_map.hpp" #include "src/buildtool/build_engine/target_map/target_map.hpp" #include "src/buildtool/common/repository_config.hpp" +#include "src/buildtool/storage/target_cache.hpp" void ExportRule(const nlohmann::json& desc_json, const BuildMaps::Target::ConfiguredTarget& key, const gsl::not_null<RepositoryConfig*>& repo_config, + const ActiveTargetCache& target_cache, const BuildMaps::Target::TargetMap::SubCallerPtr& subcaller, const BuildMaps::Target::TargetMap::SetterPtr& setter, const BuildMaps::Target::TargetMap::LoggerPtr& logger, diff --git a/src/buildtool/build_engine/target_map/target_map.cpp b/src/buildtool/build_engine/target_map/target_map.cpp index 2322ba54..4d28ac6a 100644 --- a/src/buildtool/build_engine/target_map/target_map.cpp +++ b/src/buildtool/build_engine/target_map/target_map.cpp @@ -1237,6 +1237,7 @@ void withRuleDefinition( void withTargetsFile( const BuildMaps::Target::ConfiguredTarget& key, const gsl::not_null<RepositoryConfig*>& repo_config, + const ActiveTargetCache& target_cache, const nlohmann::json& targets_file, const gsl::not_null<BuildMaps::Base::SourceTargetMap*>& source_target, const gsl::not_null<BuildMaps::Base::UserRuleMap*>& rule_map, @@ -1275,6 +1276,7 @@ void withTargetsFile( desc, key, repo_config, + target_cache, subcaller, setter, logger, @@ -1657,6 +1659,7 @@ auto CreateTargetMap( const gsl::not_null<AbsentTargetMap*>& absent_target_map, const gsl::not_null<ResultTargetMap*>& result_map, const gsl::not_null<RepositoryConfig*>& repo_config, + const ActiveTargetCache& target_cache, std::size_t jobs) -> TargetMap { auto target_reader = [source_target_map, targets_file_map, @@ -1664,11 +1667,12 @@ auto CreateTargetMap( directory_entries_map, absent_target_map, result_map, - repo_config](auto ts, - auto setter, - auto logger, - auto subcaller, - auto key) { + repo_config, + target_cache](auto ts, + auto setter, + auto logger, + auto subcaller, + auto key) { if (key.target.IsAnonymousTarget()) { withTargetNode(key, repo_config, @@ -1803,6 +1807,7 @@ auto CreateTargetMap( {key.target.ToModule()}, [key, repo_config, + target_cache, source_target_map, rule_map, ts, @@ -1812,6 +1817,7 @@ auto CreateTargetMap( result_map](auto values) { withTargetsFile(key, repo_config, + target_cache, *values[0], source_target_map, rule_map, diff --git a/src/buildtool/build_engine/target_map/target_map.hpp b/src/buildtool/build_engine/target_map/target_map.hpp index bcd902cc..2832eb35 100644 --- a/src/buildtool/build_engine/target_map/target_map.hpp +++ b/src/buildtool/build_engine/target_map/target_map.hpp @@ -29,6 +29,7 @@ #include "src/buildtool/build_engine/target_map/result_map.hpp" #include "src/buildtool/common/repository_config.hpp" #include "src/buildtool/multithreading/async_map_consumer.hpp" +#include "src/buildtool/storage/target_cache.hpp" namespace BuildMaps::Target { @@ -39,9 +40,10 @@ auto CreateTargetMap( const gsl::not_null<BuildMaps::Base::TargetsFileMap*>&, const gsl::not_null<BuildMaps::Base::UserRuleMap*>&, const gsl::not_null<BuildMaps::Base::DirectoryEntriesMap*>&, - [[maybe_unused]] const gsl::not_null<AbsentTargetMap*>&, + const gsl::not_null<AbsentTargetMap*>&, const gsl::not_null<ResultTargetMap*>&, - [[maybe_unused]] const gsl::not_null<RepositoryConfig*>&, + const gsl::not_null<RepositoryConfig*>&, + const ActiveTargetCache&, std::size_t jobs = 0) -> TargetMap; // use explicit cast to std::function to allow template deduction when used diff --git a/src/buildtool/main/TARGETS b/src/buildtool/main/TARGETS index bedcdcce..fd2adf7c 100644 --- a/src/buildtool/main/TARGETS +++ b/src/buildtool/main/TARGETS @@ -117,6 +117,7 @@ , ["src/buildtool/build_engine/target_map", "result_map"] , ["src/buildtool/build_engine/analysed_target", "target"] , ["src/buildtool/common", "config"] + , ["src/buildtool/storage", "storage"] ] , "stage": ["src", "buildtool", "main"] , "private-deps": diff --git a/src/buildtool/main/analyse.cpp b/src/buildtool/main/analyse.cpp index 6e8aeccc..6ea61de2 100644 --- a/src/buildtool/main/analyse.cpp +++ b/src/buildtool/main/analyse.cpp @@ -96,6 +96,7 @@ namespace Target = BuildMaps::Target; const Target::ConfiguredTarget& id, gsl::not_null<Target::ResultTargetMap*> const& result_map, gsl::not_null<RepositoryConfig*> const& repo_config, + ActiveTargetCache const& target_cache, std::size_t jobs, std::optional<std::string> const& request_action_input) -> std::optional<AnalysisResult> { @@ -119,6 +120,7 @@ namespace Target = BuildMaps::Target; &absent_target_map, result_map, repo_config, + target_cache, jobs); Logger::Log(LogLevel::Info, "Requested target is {}", id.ToString()); AnalysedTargetPtr target{}; diff --git a/src/buildtool/main/analyse.hpp b/src/buildtool/main/analyse.hpp index 82c2ba3e..a7e1cb08 100644 --- a/src/buildtool/main/analyse.hpp +++ b/src/buildtool/main/analyse.hpp @@ -20,6 +20,7 @@ #include "src/buildtool/build_engine/target_map/result_map.hpp" #include "src/buildtool/common/cli.hpp" #include "src/buildtool/common/repository_config.hpp" +#include "src/buildtool/storage/target_cache.hpp" struct AnalysisResult { BuildMaps::Target::ConfiguredTarget id; @@ -31,6 +32,7 @@ struct AnalysisResult { const BuildMaps::Target::ConfiguredTarget& id, gsl::not_null<BuildMaps::Target::ResultTargetMap*> const& result_map, gsl::not_null<RepositoryConfig*> const& repo_config, + ActiveTargetCache const& target_cache, std::size_t jobs, std::optional<std::string> const& request_action_input) -> std::optional<AnalysisResult>; diff --git a/src/buildtool/main/main.cpp b/src/buildtool/main/main.cpp index 78ec57a7..642251c4 100644 --- a/src/buildtool/main/main.cpp +++ b/src/buildtool/main/main.cpp @@ -40,6 +40,7 @@ #include "src/buildtool/main/install_cas.hpp" #include "src/buildtool/storage/config.hpp" #include "src/buildtool/storage/garbage_collector.hpp" +#include "src/buildtool/storage/storage.hpp" #include "src/buildtool/storage/target_cache.hpp" #ifndef BOOTSTRAP_BUILD_TOOL #include "src/buildtool/auth/authentication.hpp" @@ -997,6 +998,7 @@ auto main(int argc, char* argv[]) -> int { AnalyseTarget(id, &result_map, &repo_config, + Storage::Instance().TargetCache(), arguments.common.jobs, arguments.analysis.request_action_input); if (result) { diff --git a/src/buildtool/serve_api/serve_service/target.cpp b/src/buildtool/serve_api/serve_service/target.cpp index e7a4bf31..97b75b53 100644 --- a/src/buildtool/serve_api/serve_service/target.cpp +++ b/src/buildtool/serve_api/serve_service/target.cpp @@ -405,6 +405,7 @@ auto TargetService::ServeTarget( auto result = AnalyseTarget(configured_target, &result_map, &repository_config, + *tc, RemoteServeConfig::Jobs(), std::nullopt /*request_action_input*/); |