diff options
author | Oliver Reiche <oliver.reiche@huawei.com> | 2023-03-07 15:26:00 +0100 |
---|---|---|
committer | Oliver Reiche <oliver.reiche@huawei.com> | 2023-03-13 17:28:59 +0100 |
commit | f4cbd6a77213d12884a767e65da71d77a0fbf3ac (patch) | |
tree | 18f64ddca53052026340711fa8e26efba6da8338 /src/buildtool/build_engine/target_map/export.cpp | |
parent | 04e1e46a2d662c702292ee18d67a13688bc8da43 (diff) | |
download | justbuild-f4cbd6a77213d12884a767e65da71d77a0fbf3ac.tar.gz |
TargetCache: Drop dependency on repository config
Diffstat (limited to 'src/buildtool/build_engine/target_map/export.cpp')
-rw-r--r-- | src/buildtool/build_engine/target_map/export.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/buildtool/build_engine/target_map/export.cpp b/src/buildtool/build_engine/target_map/export.cpp index 7a53e78e..9005f037 100644 --- a/src/buildtool/build_engine/target_map/export.cpp +++ b/src/buildtool/build_engine/target_map/export.cpp @@ -77,6 +77,18 @@ void FinalizeExport( true); (*setter)(std::move(analysis_result)); } + +[[nodiscard]] auto ComputeTargetCacheKey( + BuildMaps::Base::EntityName const& exported_target, + Configuration const& target_config) -> std::optional<TargetCacheKey> { + static auto const& repos = RepositoryConfig::Instance(); + auto const& target_name = exported_target.GetNamedTarget(); + if (auto repo_key = repos.RepositoryKey(target_name.repository)) { + return TargetCacheKey::Create(*repo_key, target_name, target_config); + } + return std::nullopt; +} + } // namespace void ExportRule( @@ -130,7 +142,7 @@ void ExportRule( auto target_config = effective_config.Update(fixed_config); auto target_cache_key = - TargetCacheKey::Create(*exported_target, target_config); + ComputeTargetCacheKey(*exported_target, target_config); if (target_cache_key) { if (auto target_cache_value = TargetCache::Instance().Read(*target_cache_key)) { |