diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/query2/output')
6 files changed, 20 insertions, 8 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/query2/output/AspectResolver.java b/src/main/java/com/google/devtools/build/lib/query2/output/AspectResolver.java index 52f9875b1a..712010006c 100644 --- a/src/main/java/com/google/devtools/build/lib/query2/output/AspectResolver.java +++ b/src/main/java/com/google/devtools/build/lib/query2/output/AspectResolver.java @@ -17,6 +17,7 @@ import com.google.common.collect.ImmutableMultimap; import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.events.EventHandler; import com.google.devtools.build.lib.packages.Attribute; +import com.google.devtools.build.lib.packages.DependencyFilter; import com.google.devtools.build.lib.packages.Package; import com.google.devtools.build.lib.packages.Target; import com.google.devtools.build.lib.pkgcache.PackageProvider; @@ -86,7 +87,8 @@ public interface AspectResolver { * Compute additional dependencies of target from aspects. This method may load the direct deps * of target to determine their types. Returns map of attributes and corresponding label values. */ - ImmutableMultimap<Attribute, Label> computeAspectDependencies(Target target) + ImmutableMultimap<Attribute, Label> computeAspectDependencies(Target target, + DependencyFilter dependencyFilter) throws InterruptedException; /** diff --git a/src/main/java/com/google/devtools/build/lib/query2/output/ConservativeAspectResolver.java b/src/main/java/com/google/devtools/build/lib/query2/output/ConservativeAspectResolver.java index 47ed795747..1b28bcdbc8 100644 --- a/src/main/java/com/google/devtools/build/lib/query2/output/ConservativeAspectResolver.java +++ b/src/main/java/com/google/devtools/build/lib/query2/output/ConservativeAspectResolver.java @@ -34,7 +34,8 @@ import java.util.Set; */ public class ConservativeAspectResolver implements AspectResolver { @Override - public ImmutableMultimap<Attribute, Label> computeAspectDependencies(Target target) + public ImmutableMultimap<Attribute, Label> computeAspectDependencies(Target target, + DependencyFilter dependencyFilter) throws InterruptedException { if (!(target instanceof Rule)) { return ImmutableMultimap.of(); @@ -45,7 +46,7 @@ public class ConservativeAspectResolver implements AspectResolver { for (Attribute attribute : rule.getAttributes()) { for (Aspect aspect : attribute.getAspects(rule)) { AspectDefinition.addAllAttributesOfAspect( - rule, result, aspect.getDefinition(), DependencyFilter.ALL_DEPS); + rule, result, aspect, dependencyFilter); } } diff --git a/src/main/java/com/google/devtools/build/lib/query2/output/NullAspectResolver.java b/src/main/java/com/google/devtools/build/lib/query2/output/NullAspectResolver.java index c52e4e6c52..1b1f9a3b99 100644 --- a/src/main/java/com/google/devtools/build/lib/query2/output/NullAspectResolver.java +++ b/src/main/java/com/google/devtools/build/lib/query2/output/NullAspectResolver.java @@ -17,6 +17,7 @@ import com.google.common.collect.ImmutableMultimap; import com.google.common.collect.ImmutableSet; import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.packages.Attribute; +import com.google.devtools.build.lib.packages.DependencyFilter; import com.google.devtools.build.lib.packages.Package; import com.google.devtools.build.lib.packages.Target; @@ -29,7 +30,8 @@ import java.util.Set; */ public class NullAspectResolver implements AspectResolver { @Override - public ImmutableMultimap<Attribute, Label> computeAspectDependencies(Target target) + public ImmutableMultimap<Attribute, Label> computeAspectDependencies(Target target, + DependencyFilter dependencyFilter) throws InterruptedException { return ImmutableMultimap.of(); } diff --git a/src/main/java/com/google/devtools/build/lib/query2/output/PreciseAspectResolver.java b/src/main/java/com/google/devtools/build/lib/query2/output/PreciseAspectResolver.java index 2abe834737..4035d2201c 100644 --- a/src/main/java/com/google/devtools/build/lib/query2/output/PreciseAspectResolver.java +++ b/src/main/java/com/google/devtools/build/lib/query2/output/PreciseAspectResolver.java @@ -54,7 +54,8 @@ public class PreciseAspectResolver implements AspectResolver { } @Override - public ImmutableMultimap<Attribute, Label> computeAspectDependencies(Target target) + public ImmutableMultimap<Attribute, Label> computeAspectDependencies(Target target, + DependencyFilter dependencyFilter) throws InterruptedException { Multimap<Attribute, Label> result = LinkedListMultimap.create(); if (target instanceof Rule) { @@ -64,7 +65,12 @@ public class PreciseAspectResolver implements AspectResolver { Target toTarget; try { toTarget = packageProvider.getTarget(eventHandler, entry.getValue()); - result.putAll(AspectDefinition.visitAspectsIfRequired(target, entry.getKey(), toTarget)); + result.putAll( + AspectDefinition.visitAspectsIfRequired( + target, + entry.getKey(), + toTarget, + dependencyFilter)); } catch (NoSuchThingException e) { // Do nothing. One of target direct deps has an error. The dependency on the BUILD file // (or one of the files included in it) will be reported in the query result of :BUILD. diff --git a/src/main/java/com/google/devtools/build/lib/query2/output/ProtoOutputFormatter.java b/src/main/java/com/google/devtools/build/lib/query2/output/ProtoOutputFormatter.java index 84554af961..e8fa723003 100644 --- a/src/main/java/com/google/devtools/build/lib/query2/output/ProtoOutputFormatter.java +++ b/src/main/java/com/google/devtools/build/lib/query2/output/ProtoOutputFormatter.java @@ -177,7 +177,7 @@ public class ProtoOutputFormatter extends AbstractUnorderedFormatter { } ImmutableMultimap<Attribute, Label> aspectsDependencies = - aspectResolver.computeAspectDependencies(target); + aspectResolver.computeAspectDependencies(target, dependencyFilter); // Add information about additional attributes from aspects. for (Entry<Attribute, Collection<Label>> entry : aspectsDependencies.asMap().entrySet()) { Attribute attribute = entry.getKey(); diff --git a/src/main/java/com/google/devtools/build/lib/query2/output/XmlOutputFormatter.java b/src/main/java/com/google/devtools/build/lib/query2/output/XmlOutputFormatter.java index a14facf398..6de67a259e 100644 --- a/src/main/java/com/google/devtools/build/lib/query2/output/XmlOutputFormatter.java +++ b/src/main/java/com/google/devtools/build/lib/query2/output/XmlOutputFormatter.java @@ -155,7 +155,8 @@ class XmlOutputFormatter extends AbstractUnorderedFormatter { inputElem.setAttribute("name", label.toString()); elem.appendChild(inputElem); } - for (Label label : aspectResolver.computeAspectDependencies(target).values()) { + for (Label label : + aspectResolver.computeAspectDependencies(target, dependencyFilter).values()) { Element inputElem = doc.createElement("rule-input"); inputElem.setAttribute("name", label.toString()); elem.appendChild(inputElem); |