diff options
author | 2016-05-10 12:07:01 +0000 | |
---|---|---|
committer | 2016-05-10 12:36:02 +0000 | |
commit | 7894c18dbaf237a1c02d76beabe6ca54faf5039a (patch) | |
tree | c71c430a8976b86954f585a4d8df8d265605cd15 /src/main/java/com/google/devtools/build/lib/skyframe/PostConfiguredTargetFunction.java | |
parent | e52ebec48b65b8c0664aa208a20f511d83df950a (diff) |
Add an "alias" rule.
This will be used to replace RedirectChaser so that we don't need to load packages during configuration creation anymore.
--
MOS_MIGRATED_REVID=121935989
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/PostConfiguredTargetFunction.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/skyframe/PostConfiguredTargetFunction.java | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PostConfiguredTargetFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/PostConfiguredTargetFunction.java index c33e599412..3289d173a6 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/PostConfiguredTargetFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/PostConfiguredTargetFunction.java @@ -15,7 +15,6 @@ package com.google.devtools.build.lib.skyframe; import com.google.common.base.Function; import com.google.common.collect.ImmutableMap; -import com.google.common.collect.ImmutableSet; import com.google.common.collect.Iterables; import com.google.common.collect.ListMultimap; import com.google.devtools.build.lib.actions.ActionAnalysisMetadata; @@ -90,7 +89,7 @@ public class PostConfiguredTargetFunction implements SkyFunction { TargetAndConfiguration ctgValue = new TargetAndConfiguration(ct.getTarget(), ct.getConfiguration()); - Set<ConfigMatchingProvider> configConditions = + ImmutableMap<Label, ConfigMatchingProvider> configConditions = getConfigurableAttributeConditions(ctgValue, env); if (configConditions == null) { return null; @@ -131,10 +130,10 @@ public class PostConfiguredTargetFunction implements SkyFunction { * target, or null if not all dependencies have yet been SkyFrame-evaluated. */ @Nullable - private Set<ConfigMatchingProvider> getConfigurableAttributeConditions( + private ImmutableMap<Label, ConfigMatchingProvider> getConfigurableAttributeConditions( TargetAndConfiguration ctg, Environment env) { if (!(ctg.getTarget() instanceof Rule)) { - return ImmutableSet.of(); + return ImmutableMap.of(); } Rule rule = (Rule) ctg.getTarget(); RawAttributeMapper mapper = RawAttributeMapper.of(rule); @@ -150,10 +149,12 @@ public class PostConfiguredTargetFunction implements SkyFunction { if (env.valuesMissing()) { return null; } - ImmutableSet.Builder<ConfigMatchingProvider> conditions = ImmutableSet.builder(); - for (SkyValue ctValue : cts.values()) { - ConfiguredTarget ct = ((ConfiguredTargetValue) ctValue).getConfiguredTarget(); - conditions.add(Preconditions.checkNotNull(ct.getProvider(ConfigMatchingProvider.class))); + ImmutableMap.Builder<Label, ConfigMatchingProvider> conditions = ImmutableMap.builder(); + for (Map.Entry<SkyKey, SkyValue> entry : cts.entrySet()) { + Label label = ((ConfiguredTargetKey) entry.getKey().argument()).getLabel(); + ConfiguredTarget ct = ((ConfiguredTargetValue) entry.getValue()).getConfiguredTarget(); + conditions.put(label, Preconditions.checkNotNull( + ct.getProvider(ConfigMatchingProvider.class))); } return conditions.build(); } |