A prototype implementation of top-level aspects.
--
MOS_MIGRATED_REVID=101033236
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 fbe4140..43ec616 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
@@ -83,6 +83,7 @@
import com.google.devtools.build.lib.rules.test.TestActionContext;
import com.google.devtools.build.lib.runtime.BlazeModule;
import com.google.devtools.build.lib.runtime.BlazeRuntime;
+import com.google.devtools.build.lib.skyframe.AspectValue;
import com.google.devtools.build.lib.skyframe.Builder;
import com.google.devtools.build.lib.skyframe.SkyframeExecutor;
import com.google.devtools.build.lib.syntax.Label;
@@ -391,12 +392,20 @@
Set<ConfiguredTarget> builtTargets = new HashSet<>();
boolean interrupted = false;
try {
- Iterable<Artifact> allArtifactsForProviders = Iterables.concat(
- additionalArtifacts,
- TopLevelArtifactHelper.getAllArtifactsToBuild(
- analysisResult.getTargetsToBuild(), analysisResult.getTopLevelContext())
- .getAllArtifacts(),
- TopLevelArtifactHelper.getAllArtifactsToTest(analysisResult.getTargetsToTest()));
+ Collection<AspectValue> aspects = analysisResult.getAspects();
+
+ Iterable<Artifact> allArtifactsForProviders =
+ Iterables.concat(
+ additionalArtifacts,
+ TopLevelArtifactHelper.getAllArtifactsToBuild(
+ analysisResult.getTargetsToBuild(), analysisResult.getTopLevelContext())
+ .getAllArtifacts(),
+ TopLevelArtifactHelper.getAllArtifactsToBuildFromAspects(
+ aspects, analysisResult.getTopLevelContext())
+ .getAllArtifacts(),
+ //TODO(dslomov): Artifacts to test from aspects?
+ TopLevelArtifactHelper.getAllArtifactsToTest(analysisResult.getTargetsToTest()));
+
if (request.isRunningInEmacs()) {
// The syntax of this message is tightly constrained by lisp/progmodes/compile.el in emacs
request.getOutErr().printErrLn("blaze: Entering directory `" + getExecRoot() + "/'");
@@ -422,11 +431,14 @@
Profiler.instance().markPhase(ProfilePhase.EXECUTE);
- builder.buildArtifacts(additionalArtifacts,
+ builder.buildArtifacts(
+ additionalArtifacts,
analysisResult.getParallelTests(),
analysisResult.getExclusiveTests(),
analysisResult.getTargetsToBuild(),
- executor, builtTargets,
+ analysisResult.getAspects(),
+ executor,
+ builtTargets,
request.getBuildOptions().explanationPath != null,
runtime.getLastExecutionTimeRange());
@@ -711,8 +723,8 @@
}
}
if (headerFlag) {
- outErr.printErr(
- "Target " + label + " up-to-date (nothing to build)\n");
+ outErr.printErr("Here we are\n");
+ outErr.printErr("Target " + label + " up-to-date (nothing to build)\n");
}
}