diff options
author | twerth <twerth@google.com> | 2018-06-11 03:09:29 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-06-11 03:10:39 -0700 |
commit | 1a6c706d7b92d2529986c814cc1c9eac2dab9a1c (patch) | |
tree | 957c7ec1365070801171ec3449b8e4ff62e98292 /src/main/java/com/google/devtools/build/lib/query2 | |
parent | 4022bac855a790b3a42fcb44c06f62dbbe078c5a (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.java | 33 |
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) |