aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/query2
diff options
context:
space:
mode:
authorGravatar mstaib <mstaib@google.com>2018-04-19 14:16:41 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-04-19 14:18:37 -0700
commit4a07a47456d6db3879d768321cbd32a7a769df37 (patch)
tree6fe66409ec4820632994746de606e53ef28669a8 /src/main/java/com/google/devtools/build/lib/query2
parentb6d8ec02cf8c76b409a467ad3dfdb0b685ef2943 (diff)
Add the capability to register a trimming RuleTransitionFactory.
This RuleTransitionFactory will be applied to all targets after other transitions, and is intended to be used to manually trim the configuration based on tagging of that target. This is a stopgap feature until automatic trimming of configuration can be implemented. RELNOTES: None. PiperOrigin-RevId: 193573013
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/query2')
-rw-r--r--src/main/java/com/google/devtools/build/lib/query2/ConfiguredTargetQueryEnvironment.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/query2/TransitionsOutputFormatterCallback.java9
2 files changed, 16 insertions, 3 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/query2/ConfiguredTargetQueryEnvironment.java b/src/main/java/com/google/devtools/build/lib/query2/ConfiguredTargetQueryEnvironment.java
index 5f096b5063..b1251c6169 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/ConfiguredTargetQueryEnvironment.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/ConfiguredTargetQueryEnvironment.java
@@ -35,6 +35,7 @@ import com.google.devtools.build.lib.events.Reporter;
import com.google.devtools.build.lib.packages.DependencyFilter;
import com.google.devtools.build.lib.packages.NoSuchTargetException;
import com.google.devtools.build.lib.packages.Rule;
+import com.google.devtools.build.lib.packages.RuleTransitionFactory;
import com.google.devtools.build.lib.packages.Target;
import com.google.devtools.build.lib.pkgcache.FilteringPolicies;
import com.google.devtools.build.lib.pkgcache.PathPackageLocator;
@@ -187,6 +188,7 @@ public class ConfiguredTargetQueryEnvironment
Reporter reporter,
SkyframeExecutor skyframeExecutor,
BuildConfiguration hostConfiguration,
+ @Nullable RuleTransitionFactory trimmingTransitionFactory,
AspectResolver resolver) {
OutputStream out = reporter.getOutErr().getOutputStream();
return new ImmutableList.Builder<CqueryThreadsafeCallback>()
@@ -195,7 +197,13 @@ public class ConfiguredTargetQueryEnvironment
reporter, options, out, skyframeExecutor, accessor))
.add(
new TransitionsOutputFormatterCallback(
- reporter, options, out, skyframeExecutor, accessor, hostConfiguration))
+ reporter,
+ options,
+ out,
+ skyframeExecutor,
+ accessor,
+ hostConfiguration,
+ trimmingTransitionFactory))
.add(
new ProtoOutputFormatterCallback(
reporter, options, out, skyframeExecutor, accessor, resolver))
diff --git a/src/main/java/com/google/devtools/build/lib/query2/TransitionsOutputFormatterCallback.java b/src/main/java/com/google/devtools/build/lib/query2/TransitionsOutputFormatterCallback.java
index 92922d5d0a..dd7922a722 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/TransitionsOutputFormatterCallback.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/TransitionsOutputFormatterCallback.java
@@ -61,6 +61,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
+import javax.annotation.Nullable;
/**
* Output formatter that prints {@link ConfigurationTransition} information for rule configured
@@ -71,6 +72,7 @@ public class TransitionsOutputFormatterCallback extends CqueryThreadsafeCallback
protected final BuildConfiguration hostConfiguration;
private final HashMap<Label, Target> partialResultMap;
+ @Nullable private final RuleTransitionFactory trimmingTransitionFactory;
@Override
public String getName() {
@@ -87,9 +89,11 @@ public class TransitionsOutputFormatterCallback extends CqueryThreadsafeCallback
OutputStream out,
SkyframeExecutor skyframeExecutor,
TargetAccessor<ConfiguredTarget> accessor,
- BuildConfiguration hostConfiguration) {
+ BuildConfiguration hostConfiguration,
+ @Nullable RuleTransitionFactory trimmingTransitionFactory) {
super(reporter, options, out, skyframeExecutor, accessor);
this.hostConfiguration = hostConfiguration;
+ this.trimmingTransitionFactory = trimmingTransitionFactory;
this.partialResultMap = Maps.newHashMap();
}
@@ -139,7 +143,8 @@ public class TransitionsOutputFormatterCallback extends CqueryThreadsafeCallback
ImmutableSet.copyOf(
ConfiguredAttributeMapper.of(target.getAssociatedRule(), configConditions)
.get(PlatformSemantics.TOOLCHAINS_ATTR, BuildType.LABEL_LIST)),
- fromOptions);
+ fromOptions,
+ trimmingTransitionFactory);
} catch (EvalException | InvalidConfigurationException | InconsistentAspectOrderException e) {
throw new InterruptedException(e.getMessage());
}