aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google
diff options
context:
space:
mode:
authorGravatar Kristina Chodorow <kchodorow@google.com>2015-08-10 15:46:13 +0000
committerGravatar Laszlo Csomor <laszlocsomor@google.com>2015-08-11 07:51:32 +0000
commitb8094c10861cabb00a3f0775dc804d3e059c49d5 (patch)
tree670c550b990dfa64bdc30a9b46819e5a51a2a79f /src/main/java/com/google
parente083a9167dff6804a2ff788bcf843e29fa1d821d (diff)
Allow the workspace to be /
Fixes #367. -- MOS_MIGRATED_REVID=100281134
Diffstat (limited to 'src/main/java/com/google')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/BlazeDirectories.java15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/BlazeDirectories.java b/src/main/java/com/google/devtools/build/lib/analysis/BlazeDirectories.java
index c9dbe86166..f08cf7d4dd 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/BlazeDirectories.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/BlazeDirectories.java
@@ -14,6 +14,7 @@
package com.google.devtools.build.lib.analysis;
+import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Preconditions;
import com.google.devtools.build.lib.Constants;
import com.google.devtools.build.lib.actions.Root;
@@ -53,6 +54,8 @@ public final class BlazeDirectories {
// Include directory name, relative to execRoot/blaze-out/configuration.
public static final String RELATIVE_INCLUDE_DIR = StringCanonicalizer.intern("include");
+ @VisibleForTesting
+ static final String DEFAULT_EXEC_ROOT = "default-exec-root";
private final Path installBase; // Where Blaze gets unpacked
private final Path workspace; // Workspace root and server CWD
@@ -68,16 +71,18 @@ public final class BlazeDirectories {
this.installBase = installBase;
this.workspace = workspace;
this.outputBase = outputBase;
- if (this.workspace == null) {
- // TODO(bazel-team): this should be null, but at the moment there is a lot of code that
- // depends on it being non-null.
- this.execRoot = outputBase.getChild("default-exec-root");
+ boolean useDefaultExecRootName = this.workspace == null || this.workspace.isRootDirectory();
+ if (useDefaultExecRootName) {
+ // TODO(bazel-team): if workspace is null execRoot should be null, but at the moment there is
+ // a lot of code that depends on it being non-null.
+ this.execRoot = outputBase.getChild(DEFAULT_EXEC_ROOT);
} else {
this.execRoot = outputBase.getChild(workspace.getBaseName());
}
this.outputPath = execRoot.getRelative(RELATIVE_OUTPUT_PATH);
- Preconditions.checkState(this.workspace == null || outputPath.asFragment().equals(
+ Preconditions.checkState(useDefaultExecRootName || outputPath.asFragment().equals(
outputPathFromOutputBase(outputBase.asFragment(), workspace.asFragment())));
+
this.localOutputPath = outputBase.getRelative(BlazeDirectories.RELATIVE_OUTPUT_PATH);
}