aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis/config/BinTools.java
diff options
context:
space:
mode:
authorGravatar hlopko <hlopko@google.com>2017-04-04 13:53:14 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2017-04-04 18:38:24 +0200
commitc4134802dd15d6ef5cca6521f6bf6aac395ee2ad (patch)
treebcb3f28c5a4357f0089c2c71b738d63a748ef788 /src/main/java/com/google/devtools/build/lib/analysis/config/BinTools.java
parent64f80799ed5c6369ffb6814f939a7964b0fa7c49 (diff)
Automated g4 rollback of commit 1d9e1ac90197b1d3d7b137ba3c1ada67bb9ba31b.
*** Reason for rollback *** Breaks //src/test/shell/integration:force_delete_output_test *** Original change description *** Symlink output directories to the correct directory name If the workspace directory is /path/to/my/proj and the name in the WORKSPACE file is "floop", this will symlink the output directories to output_base/execroot/floop instead of output_base/execroot/proj. More prep for #1262, fixes #1681. PiperOrigin-RevId: 152126545
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis/config/BinTools.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/config/BinTools.java29
1 files changed, 8 insertions, 21 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/BinTools.java b/src/main/java/com/google/devtools/build/lib/analysis/config/BinTools.java
index 2363624388..73cc667034 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/BinTools.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/BinTools.java
@@ -37,14 +37,12 @@ import java.io.IOException;
*/
public final class BinTools {
private final BlazeDirectories directories;
- private final Path execrootParent;
+ private final Path binDir; // the working bin directory under execRoot
private final ImmutableList<String> embeddedTools;
- private Path binDir; // the working bin directory under execRoot
-
private BinTools(BlazeDirectories directories, ImmutableList<String> tools) {
this.directories = directories;
- this.execrootParent = directories.getExecRoot().getParentDirectory();
+ this.binDir = directories.getExecRoot().getRelative("_bin");
ImmutableList.Builder<String> builder = ImmutableList.builder();
// Files under embedded_tools shouldn't be copied to under _bin dir
// They won't be used during action execution time.
@@ -54,7 +52,6 @@ public final class BinTools {
}
}
this.embeddedTools = builder.build();
- this.binDir = null;
}
/**
@@ -72,8 +69,7 @@ public final class BinTools {
*/
@VisibleForTesting
public static BinTools empty(BlazeDirectories directories) {
- return new BinTools(directories, ImmutableList.<String>of()).setBinDir(
- directories.getWorkspace().getBaseName());
+ return new BinTools(directories, ImmutableList.<String>of());
}
/**
@@ -83,8 +79,7 @@ public final class BinTools {
*/
@VisibleForTesting
public static BinTools forUnitTesting(BlazeDirectories directories, Iterable<String> tools) {
- return new BinTools(directories, ImmutableList.copyOf(tools)).setBinDir(
- directories.getWorkspace().getBaseName());
+ return new BinTools(directories, ImmutableList.copyOf(tools));
}
/**
@@ -93,7 +88,7 @@ public final class BinTools {
*/
@VisibleForTesting
public static BinTools forIntegrationTesting(
- BlazeDirectories directories, String srcDir, Iterable<String> tools, String repositoryName)
+ BlazeDirectories directories, String srcDir, Iterable<String> tools)
throws IOException {
Path srcPath = directories.getOutputBase().getFileSystem().getPath(srcDir);
for (String embedded : tools) {
@@ -106,7 +101,7 @@ public final class BinTools {
// much point in creating a symlink to a non-existent binary here.
continue;
}
- Path outputPath = directories.getExecRoot(repositoryName).getChild("_bin").getChild(embedded);
+ Path outputPath = directories.getExecRoot().getChild("_bin").getChild(embedded);
if (outputPath.exists()) {
outputPath.delete();
}
@@ -114,7 +109,7 @@ public final class BinTools {
outputPath.createSymbolicLink(runfilesPath);
}
- return new BinTools(directories, ImmutableList.copyOf(tools)).setBinDir(repositoryName);
+ return new BinTools(directories, ImmutableList.copyOf(tools));
}
private static void scanDirectoryRecursively(
@@ -148,7 +143,6 @@ public final class BinTools {
}
public Artifact getEmbeddedArtifact(String embedPath, ArtifactFactory artifactFactory) {
- Preconditions.checkNotNull(binDir);
PathFragment path = getExecPath(embedPath);
Preconditions.checkNotNull(path, embedPath + " not found in embedded tools");
return artifactFactory.getDerivedArtifact(path, binDir.getParentDirectory());
@@ -162,17 +156,11 @@ public final class BinTools {
return builder.build();
}
- private BinTools setBinDir(String workspaceName) {
- binDir = execrootParent.getRelative(workspaceName).getRelative("_bin");
- return this;
- }
-
/**
* Initializes the build tools not available at absolute paths. Note that
* these must be constant across all configurations.
*/
- public void setupBuildTools(String workspaceName) throws ExecException {
- setBinDir(workspaceName);
+ public void setupBuildTools() throws ExecException {
try {
FileSystemUtils.createDirectoryAndParents(binDir);
} catch (IOException e) {
@@ -185,7 +173,6 @@ public final class BinTools {
}
private void setupTool(String embeddedPath) throws ExecException {
- Preconditions.checkNotNull(binDir);
Path sourcePath = directories.getEmbeddedBinariesRoot().getRelative(embeddedPath);
Path linkPath = binDir.getRelative(new PathFragment(embeddedPath).getBaseName());
linkTool(sourcePath, linkPath);