Simplify BuildView construction and store configurations in the build result.
I was persuing the idea that BuildView could become stateless. While that
should be possible, we're currently still relying on minimal state in
BuildView (from tests at least) in a way that makes it tricky to remove.
Instead, I'm now trying to move the BuildView into CommandEnvironment, and
create a new one as needed (only for build commands); that makes it safe in the
presence of concurrently running commands, as long as they don't use the same
BuildView instace. (Of course, allowing commands to run concurrently will need
more changes outside of BuildView.)
--
MOS_MIGRATED_REVID=103279370
diff --git a/src/main/java/com/google/devtools/build/lib/buildtool/BuildResult.java b/src/main/java/com/google/devtools/build/lib/buildtool/BuildResult.java
index ed165e0..a55a95a 100644
--- a/src/main/java/com/google/devtools/build/lib/buildtool/BuildResult.java
+++ b/src/main/java/com/google/devtools/build/lib/buildtool/BuildResult.java
@@ -17,6 +17,7 @@
import com.google.common.base.MoreObjects;
import com.google.common.base.Preconditions;
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
+import com.google.devtools.build.lib.analysis.config.BuildConfigurationCollection;
import com.google.devtools.build.lib.util.ExitCode;
import java.util.Collection;
@@ -35,6 +36,8 @@
private Throwable crash = null;
private boolean catastrophe = false;
private ExitCode exitCondition = ExitCode.BLAZE_INTERNAL_ERROR;
+
+ private BuildConfigurationCollection configurations;
private Collection<ConfiguredTarget> actualTargets;
private Collection<ConfiguredTarget> testTargets;
private Collection<ConfiguredTarget> successfulTargets;
@@ -118,6 +121,17 @@
return crash;
}
+ public void setBuildConfigurationCollection(BuildConfigurationCollection configurations) {
+ this.configurations = configurations;
+ }
+
+ /**
+ * Returns the build configuration collection used for the build.
+ */
+ public BuildConfigurationCollection getBuildConfigurationCollection() {
+ return configurations;
+ }
+
/**
* @see #getActualTargets
*/