aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools
diff options
context:
space:
mode:
authorGravatar Lukacs Berki <lberki@google.com>2016-01-14 11:56:32 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2016-01-15 09:22:03 +0000
commitfc2a01bcedaf85c2a4fd7675f80e877203cc57cb (patch)
tree5c950de2cad89adb6bebc2f0b7ea9c8793d9d8f8 /src/main/java/com/google/devtools
parent85834ad350edb675d14daad71e878f74ce417353 (diff)
Add a few other Label.resolveRepositoryRelative() calls to make select() statements work in remote repositories.
This work is somewhat sisyphean; the principled thing to do would be to just do this resolution when labels are parsed. Fixes #783. -- MOS_MIGRATED_REVID=112137996
Diffstat (limited to 'src/main/java/com/google/devtools')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/ConfiguredAttributeMapper.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/AggregatingAttributeMapper.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/RuleClass.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java3
4 files changed, 10 insertions, 5 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredAttributeMapper.java b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredAttributeMapper.java
index 895f08e67e..65267f62d4 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredAttributeMapper.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredAttributeMapper.java
@@ -132,7 +132,8 @@ public class ConfiguredAttributeMapper extends AbstractAttributeMapper {
continue;
}
- ConfigMatchingProvider curCondition = Verify.verifyNotNull(configConditions.get(selectorKey));
+ ConfigMatchingProvider curCondition = Verify.verifyNotNull(configConditions.get(
+ rule.getLabel().resolveRepositoryRelative(selectorKey)));
conditionLabels.add(curCondition.label());
if (curCondition.matches()) {
diff --git a/src/main/java/com/google/devtools/build/lib/packages/AggregatingAttributeMapper.java b/src/main/java/com/google/devtools/build/lib/packages/AggregatingAttributeMapper.java
index ea2a57e5d8..993113ad8c 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/AggregatingAttributeMapper.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/AggregatingAttributeMapper.java
@@ -125,10 +125,11 @@ public class AggregatingAttributeMapper extends AbstractAttributeMapper {
for (Selector<?> selector : selectorList.getSelectors()) {
for (Map.Entry<Label, ?> selectorEntry : selector.getEntries().entrySet()) {
if (includeSelectKeys && !BuildType.Selector.isReservedLabel(selectorEntry.getKey())) {
- observer.acceptLabelAttribute(selectorEntry.getKey(), attribute);
+ observer.acceptLabelAttribute(
+ getLabel().resolveRepositoryRelative(selectorEntry.getKey()), attribute);
}
for (Label value : extractLabels(type, selectorEntry.getValue())) {
- observer.acceptLabelAttribute(value, attribute);
+ observer.acceptLabelAttribute(getLabel().resolveRepositoryRelative(value), attribute);
}
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java b/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java
index 8e00db47b6..9ce41f6cd4 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java
@@ -1476,7 +1476,9 @@ public final class RuleClass {
for (Attribute attr : rule.getAttributes()) {
SelectorList<?> selectors = attributes.getSelectorList(attr.getName(), attr.getType());
if (selectors != null) {
- configLabels.addAll(selectors.getKeyLabels());
+ for (Label key : selectors.getKeyLabels()) {
+ configLabels.add(rule.getLabel().resolveRepositoryRelative(key));
+ }
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java
index bd698d9cb8..70d72331e5 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java
@@ -645,7 +645,8 @@ final class ConfiguredTargetFunction implements SkyFunction {
for (Label configLabel : attributeMap.getConfigurabilityKeys(a.getName(), a.getType())) {
if (!BuildType.Selector.isReservedLabel(configLabel)) {
configLabelMap.put(a, LabelAndConfiguration.of(
- configLabel, ctgValue.getConfiguration()));
+ target.getLabel().resolveRepositoryRelative(configLabel),
+ ctgValue.getConfiguration()));
}
}
}