aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/buildtool/ExecutionTool.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/buildtool/ExecutionTool.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/buildtool/ExecutionTool.java27
1 files changed, 12 insertions, 15 deletions
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 213a9730ce..b4dd117718 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
@@ -351,6 +351,18 @@ public class ExecutionTool {
startLocalOutputBuild(); // TODO(bazel-team): this could be just another OutputService
}
+ if (getWorkspace().getFileSystem().supportsSymbolicLinks()) {
+ List<BuildConfiguration> targetConfigurations = configurations.getTargetConfigurations();
+ BuildConfiguration targetConfiguration = targetConfigurations.size() == 1
+ ? targetConfigurations.get(0) : null;
+ if (targetConfigurations.size() == 1) {
+ OutputDirectoryLinksUtils.createOutputDirectoryLinks(
+ runtime.getWorkspaceName(), getWorkspace(), getExecRoot(),
+ runtime.getOutputPath(), getReporter(), targetConfiguration,
+ request.getBuildOptions().getSymlinkPrefix());
+ }
+ }
+
ActionCache actionCache = getActionCache();
SkyframeExecutor skyframeExecutor = env.getSkyframeExecutor();
Builder builder =
@@ -435,21 +447,6 @@ public class ExecutionTool {
}
if (buildCompleted) {
getReporter().handle(Event.progress("Building complete."));
-
- // Create symlinks only after we've actually built something so that we don't create
- // dangling symlinks.
- if (getWorkspace().getFileSystem().supportsSymbolicLinks()) {
- List<BuildConfiguration> targetConfigurations = configurations.getTargetConfigurations();
- // TODO(bazel-team): This is not optimal - we retain backwards compatibility in the case
- // where there's only a single configuration, but we don't create any symlinks in the
- // multi-config case. Can we do better? [multi-config]
- if (targetConfigurations.size() == 1) {
- OutputDirectoryLinksUtils.createOutputDirectoryLinks(
- runtime.getWorkspaceName(), getWorkspace(), getExecRoot(),
- runtime.getOutputPath(), getReporter(), targetConfigurations.get(0),
- request.getBuildOptions().getSymlinkPrefix());
- }
- }
}
env.getEventBus().post(new ExecutionFinishedEvent(ImmutableMap.<String, Long> of(), 0L,