diff options
author | mstaib <mstaib@google.com> | 2018-04-19 14:16:41 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-04-19 14:18:37 -0700 |
commit | 4a07a47456d6db3879d768321cbd32a7a769df37 (patch) | |
tree | 6fe66409ec4820632994746de606e53ef28669a8 /src/main/java/com/google/devtools/build/lib/query2 | |
parent | b6d8ec02cf8c76b409a467ad3dfdb0b685ef2943 (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')
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()); } |