aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib
diff options
context:
space:
mode:
authorGravatar Carmi Grushko <carmi@google.com>2016-03-16 15:13:38 +0000
committerGravatar Lukacs Berki <lberki@google.com>2016-03-17 10:04:31 +0000
commit97a2c30c9c09b7e5b0dff64acd6656df2431246a (patch)
treeba9fcdd76bd405643ae2b22abf149baadacc45bd /src/main/java/com/google/devtools/build/lib
parent2eb2bc593adf6a3a7145881872996fa1957d4933 (diff)
Make ProguardLibrary.collectLocalProguardSpecs and collectProguardSpecsFromAttribute work with attributes added by Aspects.
-- MOS_MIGRATED_REVID=117343880
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/ProguardLibrary.java14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/ProguardLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/java/ProguardLibrary.java
index 1f92aac2db..f12c1fcf83 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/ProguardLibrary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/ProguardLibrary.java
@@ -25,6 +25,7 @@ import com.google.devtools.build.lib.analysis.actions.SpawnAction;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
import com.google.devtools.build.lib.collect.nestedset.Order;
+import com.google.devtools.build.lib.packages.Attribute;
import com.google.devtools.build.lib.packages.BuildType;
import java.util.Collection;
@@ -90,7 +91,8 @@ public final class ProguardLibrary {
* Collects the unvalidated proguard specs exported by this rule.
*/
private Collection<Artifact> collectLocalProguardSpecs() {
- if (!ruleContext.getRule().isAttrDefined(LOCAL_SPEC_ATTRIBUTE, BuildType.LABEL_LIST)) {
+ Attribute attribute = ruleContext.getAttribute(LOCAL_SPEC_ATTRIBUTE);
+ if (attribute == null || attribute.getType() != BuildType.LABEL_LIST) {
return ImmutableList.of();
}
return ruleContext.getPrerequisiteArtifacts(LOCAL_SPEC_ATTRIBUTE, Mode.TARGET).list();
@@ -99,14 +101,16 @@ public final class ProguardLibrary {
/**
* Collects the proguard specs exported by dependencies on the given LABEL_LIST/LABEL attribute.
*/
- private NestedSet<Artifact> collectProguardSpecsFromAttribute(String attribute, Mode mode) {
- if (!(ruleContext.getRule().isAttrDefined(attribute, BuildType.LABEL_LIST)
- || ruleContext.getRule().isAttrDefined(attribute, BuildType.LABEL))) {
+ private NestedSet<Artifact> collectProguardSpecsFromAttribute(String attributeName, Mode mode) {
+ Attribute attribute = ruleContext.getAttribute(attributeName);
+ if (attribute == null
+ || (attribute.getType() != BuildType.LABEL_LIST
+ && attribute.getType() != BuildType.LABEL)) {
return NestedSetBuilder.emptySet(Order.NAIVE_LINK_ORDER);
}
NestedSetBuilder<Artifact> dependencySpecsBuilder = NestedSetBuilder.naiveLinkOrder();
for (ProguardSpecProvider provider :
- ruleContext.getPrerequisites(attribute, mode, ProguardSpecProvider.class)) {
+ ruleContext.getPrerequisites(attributeName, mode, ProguardSpecProvider.class)) {
dependencySpecsBuilder.addTransitive(provider.getTransitiveProguardSpecs());
}
return dependencySpecsBuilder.build();