aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/PostConfiguredTargetFunction.java
diff options
context:
space:
mode:
authorGravatar Lukacs Berki <lberki@google.com>2016-05-10 12:07:01 +0000
committerGravatar Lukacs Berki <lberki@google.com>2016-05-10 12:36:02 +0000
commit7894c18dbaf237a1c02d76beabe6ca54faf5039a (patch)
treec71c430a8976b86954f585a4d8df8d265605cd15 /src/main/java/com/google/devtools/build/lib/skyframe/PostConfiguredTargetFunction.java
parente52ebec48b65b8c0664aa208a20f511d83df950a (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.java17
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();
}