aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/query2
diff options
context:
space:
mode:
authorGravatar twerth <twerth@google.com>2018-06-11 03:09:29 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-06-11 03:10:39 -0700
commit1a6c706d7b92d2529986c814cc1c9eac2dab9a1c (patch)
tree957c7ec1365070801171ec3449b8e4ff62e98292 /src/main/java/com/google/devtools/build/lib/query2
parent4022bac855a790b3a42fcb44c06f62dbbe078c5a (diff)
Introduce generic post analysis build tool.
This is the first step on the way to a proper action graph query command. RELNOTES: None PiperOrigin-RevId: 200026440
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.java33
1 files changed, 28 insertions, 5 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 5cbbe5a080..d709e55c18 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
@@ -37,6 +37,7 @@ 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.PackageManager;
import com.google.devtools.build.lib.pkgcache.PathPackageLocator;
import com.google.devtools.build.lib.pkgcache.TargetPatternEvaluator;
import com.google.devtools.build.lib.query2.engine.Callback;
@@ -137,6 +138,8 @@ public class ConfiguredTargetQueryEnvironment
private RecursivePackageProviderBackedTargetPatternResolver resolver;
+ private CqueryOptions cqueryOptions;
+
public ConfiguredTargetQueryEnvironment(
boolean keepGoing,
ExtendedEventHandler eventHandler,
@@ -169,6 +172,21 @@ public class ConfiguredTargetQueryEnvironment
};
}
+ public ConfiguredTargetQueryEnvironment(
+ boolean keepGoing,
+ ExtendedEventHandler eventHandler,
+ Iterable<QueryFunction> extraFunctions,
+ BuildConfiguration defaultTargetConfiguration,
+ BuildConfiguration hostConfiguration,
+ String parserPrefix,
+ PathPackageLocator pkgPath,
+ Supplier<WalkableGraph> walkableGraphSupplier,
+ CqueryOptions cqueryOptions) {
+ this(keepGoing, eventHandler, extraFunctions, defaultTargetConfiguration, hostConfiguration,
+ parserPrefix, pkgPath, walkableGraphSupplier, cqueryOptions.toSettings());
+ this.cqueryOptions = cqueryOptions;
+ }
+
private static ImmutableList<QueryFunction> populateFunctions() {
return new ImmutableList.Builder<QueryFunction>()
.addAll(QueryEnvironment.DEFAULT_QUERY_FUNCTIONS)
@@ -182,21 +200,22 @@ public class ConfiguredTargetQueryEnvironment
public ImmutableList<CqueryThreadsafeCallback> getDefaultOutputFormatters(
TargetAccessor<ConfiguredTarget> accessor,
- CqueryOptions options,
Reporter reporter,
SkyframeExecutor skyframeExecutor,
BuildConfiguration hostConfiguration,
@Nullable RuleTransitionFactory trimmingTransitionFactory,
- AspectResolver resolver) {
+ PackageManager packageManager) {
+ AspectResolver aspectResolver =
+ cqueryOptions.aspectDeps.createResolver(packageManager, reporter);
OutputStream out = reporter.getOutErr().getOutputStream();
return new ImmutableList.Builder<CqueryThreadsafeCallback>()
.add(
new LabelAndConfigurationOutputFormatterCallback(
- reporter, options, out, skyframeExecutor, accessor))
+ reporter, cqueryOptions, out, skyframeExecutor, accessor))
.add(
new TransitionsOutputFormatterCallback(
reporter,
- options,
+ cqueryOptions,
out,
skyframeExecutor,
accessor,
@@ -204,10 +223,14 @@ public class ConfiguredTargetQueryEnvironment
trimmingTransitionFactory))
.add(
new ProtoOutputFormatterCallback(
- reporter, options, out, skyframeExecutor, accessor, resolver))
+ reporter, cqueryOptions, out, skyframeExecutor, accessor, aspectResolver))
.build();
}
+ public String getOutputFormat() {
+ return cqueryOptions.outputFormat;
+ }
+
@Override
public QueryEvalResult evaluateQuery(
QueryExpression expr, ThreadSafeOutputFormatterCallback<ConfiguredTarget> callback)