summaryrefslogtreecommitdiff
path: root/src/buildtool/build_engine/target_map/export.cpp
diff options
context:
space:
mode:
authorOliver Reiche <oliver.reiche@huawei.com>2023-03-07 15:26:00 +0100
committerOliver Reiche <oliver.reiche@huawei.com>2023-03-13 17:28:59 +0100
commitf4cbd6a77213d12884a767e65da71d77a0fbf3ac (patch)
tree18f64ddca53052026340711fa8e26efba6da8338 /src/buildtool/build_engine/target_map/export.cpp
parent04e1e46a2d662c702292ee18d67a13688bc8da43 (diff)
downloadjustbuild-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.cpp14
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)) {