diff options
author | 2018-06-15 03:23:58 -0700 | |
---|---|---|
committer | 2018-06-15 03:25:10 -0700 | |
commit | 940fbd7aafc8227a5ff110ddac1be71d17225adf (patch) | |
tree | e0f3a98f47d60a13ba3e3933c99ecc2d3a8f45d7 /src/main/java | |
parent | 816f3ef7c8811cd1abd9ff807dc8ff1d9f6e10ac (diff) |
Add the BuildConfigurationCollection to the AnalysisResult
This is in preparation for interleaving config creation with loading+analysis.
PiperOrigin-RevId: 200695071
Diffstat (limited to 'src/main/java')
5 files changed, 19 insertions, 12 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/AnalysisResult.java b/src/main/java/com/google/devtools/build/lib/analysis/AnalysisResult.java index 6239328a60..401551333b 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/AnalysisResult.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/AnalysisResult.java @@ -19,6 +19,7 @@ import com.google.common.collect.ImmutableSet; import com.google.devtools.build.lib.actions.ActionGraph; import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.actions.PackageRoots; +import com.google.devtools.build.lib.analysis.config.BuildConfigurationCollection; import com.google.devtools.build.lib.skyframe.AspectValue; import java.util.Collection; import java.util.List; @@ -28,6 +29,7 @@ import javax.annotation.Nullable; * Return value for {@link com.google.devtools.build.lib.buildtool.AnalysisPhaseRunner}. */ public final class AnalysisResult { + private final BuildConfigurationCollection configurations; private final ImmutableSet<ConfiguredTarget> targetsToBuild; @Nullable private final ImmutableList<ConfiguredTarget> targetsToTest; private final ImmutableSet<ConfiguredTarget> targetsToSkip; @@ -43,6 +45,7 @@ public final class AnalysisResult { private final List<TargetAndConfiguration> topLevelTargetsWithConfigs; AnalysisResult( + BuildConfigurationCollection configurations, Collection<ConfiguredTarget> targetsToBuild, ImmutableSet<AspectValue> aspects, Collection<ConfiguredTarget> targetsToTest, @@ -56,6 +59,7 @@ public final class AnalysisResult { PackageRoots packageRoots, String workspaceName, List<TargetAndConfiguration> topLevelTargetsWithConfigs) { + this.configurations = configurations; this.targetsToBuild = ImmutableSet.copyOf(targetsToBuild); this.aspects = aspects; this.targetsToTest = targetsToTest == null ? null : ImmutableList.copyOf(targetsToTest); @@ -71,6 +75,10 @@ public final class AnalysisResult { this.topLevelTargetsWithConfigs = topLevelTargetsWithConfigs; } + public BuildConfigurationCollection getConfigurationCollection() { + return configurations; + } + /** * Returns configured targets to build. */ diff --git a/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java b/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java index 1b3e29121c..c223113d7b 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java @@ -342,6 +342,7 @@ public class BuildView { createResult( eventHandler, loadingResult, + configurations, topLevelOptions, viewOptions, skyframeAnalysisResult, @@ -354,6 +355,7 @@ public class BuildView { private AnalysisResult createResult( ExtendedEventHandler eventHandler, LoadingResult loadingResult, + BuildConfigurationCollection configurations, TopLevelArtifactContext topLevelOptions, AnalysisOptions viewOptions, SkyframeAnalysisResult skyframeAnalysisResult, @@ -438,6 +440,7 @@ public class BuildView { } }; return new AnalysisResult( + configurations, configuredTargets, aspects, allTargetsToTest, diff --git a/src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java b/src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java index 32307e0b43..b88952acc6 100644 --- a/src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java +++ b/src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java @@ -229,14 +229,13 @@ public class BuildTool { AbortReason.SKIPPED, String.format("Target %s build was skipped.", label), label)); } - postProcessAnalysisResult(request, analysisResult, configurations); + postProcessAnalysisResult(request, analysisResult); // Execution phase. if (needsExecutionPhase(request.getBuildOptions())) { executionTool.executeBuild( request.getId(), analysisResult, result, - configurations, analysisResult.getPackageRoots(), request.getTopLevelArtifactContext()); } else { @@ -303,10 +302,10 @@ public class BuildTool { */ protected void postProcessAnalysisResult( BuildRequest request, - AnalysisResult analysisResult, - BuildConfigurationCollection configurations) + AnalysisResult analysisResult) throws InterruptedException, ViewCreationFailedException, - PostAnalysisQueryCommandLineException {} + PostAnalysisQueryCommandLineException { + } private void reportExceptionError(Exception e) { if (e.getMessage() != null) { diff --git a/src/main/java/com/google/devtools/build/lib/buildtool/ExecutionTool.java b/src/main/java/com/google/devtools/build/lib/buildtool/ExecutionTool.java index 8f1e409fab..58afd6b430 100644 --- a/src/main/java/com/google/devtools/build/lib/buildtool/ExecutionTool.java +++ b/src/main/java/com/google/devtools/build/lib/buildtool/ExecutionTool.java @@ -47,7 +47,6 @@ import com.google.devtools.build.lib.analysis.TopLevelArtifactHelper; import com.google.devtools.build.lib.analysis.WorkspaceStatusAction; import com.google.devtools.build.lib.analysis.actions.SymlinkTreeActionContext; import com.google.devtools.build.lib.analysis.config.BuildConfiguration; -import com.google.devtools.build.lib.analysis.config.BuildConfigurationCollection; import com.google.devtools.build.lib.buildtool.buildevent.ExecutionPhaseCompleteEvent; import com.google.devtools.build.lib.buildtool.buildevent.ExecutionStartingEvent; import com.google.devtools.build.lib.cmdline.PackageIdentifier; @@ -213,7 +212,6 @@ public class ExecutionTool { UUID buildId, AnalysisResult analysisResult, BuildResult buildResult, - BuildConfigurationCollection configurations, PackageRoots packageRoots, TopLevelArtifactContext topLevelArtifactContext) throws BuildFailedException, InterruptedException, TestExecException, AbruptExitException { @@ -253,7 +251,8 @@ public class ExecutionTool { .distinct() .map((key) -> env.getSkyframeExecutor().getConfiguration(env.getReporter(), key)) .collect(toImmutableSet()) - : ImmutableSet.copyOf(configurations.getTargetConfigurations()); + : ImmutableSet.copyOf( + analysisResult.getConfigurationCollection().getTargetConfigurations()); String productName = runtime.getProductName(); String workspaceName = env.getWorkspaceName(); OutputDirectoryLinksUtils.createOutputDirectoryLinks( diff --git a/src/main/java/com/google/devtools/build/lib/buildtool/PostAnalysisQueryBuildTool.java b/src/main/java/com/google/devtools/build/lib/buildtool/PostAnalysisQueryBuildTool.java index 941f53efaa..31681b1af0 100644 --- a/src/main/java/com/google/devtools/build/lib/buildtool/PostAnalysisQueryBuildTool.java +++ b/src/main/java/com/google/devtools/build/lib/buildtool/PostAnalysisQueryBuildTool.java @@ -17,7 +17,6 @@ import com.google.devtools.build.lib.analysis.AnalysisResult; import com.google.devtools.build.lib.analysis.TargetAndConfiguration; import com.google.devtools.build.lib.analysis.ViewCreationFailedException; import com.google.devtools.build.lib.analysis.config.BuildConfiguration; -import com.google.devtools.build.lib.analysis.config.BuildConfigurationCollection; import com.google.devtools.build.lib.events.Event; import com.google.devtools.build.lib.query2.ConfiguredTargetQueryEnvironment; import com.google.devtools.build.lib.query2.CqueryThreadsafeCallback; @@ -48,8 +47,7 @@ public abstract class PostAnalysisQueryBuildTool extends BuildTool { @Override protected void postProcessAnalysisResult( BuildRequest request, - AnalysisResult analysisResult, - BuildConfigurationCollection configurations) + AnalysisResult analysisResult) throws InterruptedException, ViewCreationFailedException, PostAnalysisQueryCommandLineException { // TODO: b/71905538 - this query will operate over the graph as constructed by analysis, but @@ -66,7 +64,7 @@ public abstract class PostAnalysisQueryBuildTool extends BuildTool { try { doPostAnalysisQuery( request, - configurations.getHostConfiguration(), + analysisResult.getConfigurationCollection().getHostConfiguration(), analysisResult.getTopLevelTargetsWithConfigs(), queryExpression); } catch (QueryException | IOException e) { |