diff options
author | Paul Cristian Sarbu <paul.cristian.sarbu@huawei.com> | 2023-11-24 11:31:42 +0100 |
---|---|---|
committer | Paul Cristian Sarbu <paul.cristian.sarbu@huawei.com> | 2023-11-27 15:03:20 +0100 |
commit | cf04253130030bc28866d10aa1f8fe1353643d42 (patch) | |
tree | ef7049624771866455105a8dab7b001840139701 /src/buildtool/main/analyse.cpp | |
parent | bc09302c2772c979c45ecc716c36e4a70bb484ac (diff) | |
download | justbuild-cf04253130030bc28866d10aa1f8fe1353643d42.tar.gz |
Refactoring RepositoryConfig
With the introduction of 'just serve', export targets can now be
built also independently from one another based on their
corresponding minimal repository configuration, as stored in the
target cache key.
In this context, this commit changes the RepositoryConfig usage
from one global (static) instance to pointers passed as necessary
throughout the code.
Diffstat (limited to 'src/buildtool/main/analyse.cpp')
-rw-r--r-- | src/buildtool/main/analyse.cpp | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/src/buildtool/main/analyse.cpp b/src/buildtool/main/analyse.cpp index 6cccd1c3..54b77e4f 100644 --- a/src/buildtool/main/analyse.cpp +++ b/src/buildtool/main/analyse.cpp @@ -125,22 +125,29 @@ void DetectAndReportPending(std::string const& name, [[nodiscard]] auto AnalyseTarget( const Target::ConfiguredTarget& id, gsl::not_null<Target::ResultTargetMap*> const& result_map, + gsl::not_null<RepositoryConfig*> const& repo_config, std::size_t jobs, AnalysisArguments const& clargs) -> std::optional<AnalysisResult> { - auto directory_entries = Base::CreateDirectoryEntriesMap(jobs); - auto expressions_file_map = Base::CreateExpressionFileMap(jobs); - auto rule_file_map = Base::CreateRuleFileMap(jobs); - auto targets_file_map = Base::CreateTargetsFileMap(jobs); - auto expr_map = Base::CreateExpressionMap(&expressions_file_map, jobs); - auto rule_map = Base::CreateRuleMap(&rule_file_map, &expr_map, jobs); - auto source_targets = Base::CreateSourceTargetMap(&directory_entries, jobs); - auto absent_target_map = Target::CreateAbsentTargetMap(result_map, jobs); + auto directory_entries = Base::CreateDirectoryEntriesMap(repo_config, jobs); + auto expressions_file_map = + Base::CreateExpressionFileMap(repo_config, jobs); + auto rule_file_map = Base::CreateRuleFileMap(repo_config, jobs); + auto targets_file_map = Base::CreateTargetsFileMap(repo_config, jobs); + auto expr_map = + Base::CreateExpressionMap(&expressions_file_map, repo_config, jobs); + auto rule_map = + Base::CreateRuleMap(&rule_file_map, &expr_map, repo_config, jobs); + auto source_targets = + Base::CreateSourceTargetMap(&directory_entries, repo_config, jobs); + auto absent_target_map = + Target::CreateAbsentTargetMap(result_map, repo_config, jobs); auto target_map = Target::CreateTargetMap(&source_targets, &targets_file_map, &rule_map, &directory_entries, &absent_target_map, result_map, + repo_config, jobs); Logger::Log(LogLevel::Info, "Requested target is {}", id.ToString()); AnalysedTargetPtr target{}; |