diff options
author | 2017-04-04 13:53:14 +0000 | |
---|---|---|
committer | 2017-04-04 18:38:24 +0200 | |
commit | c4134802dd15d6ef5cca6521f6bf6aac395ee2ad (patch) | |
tree | bcb3f28c5a4357f0089c2c71b738d63a748ef788 /src/main/java/com/google/devtools/build/lib/analysis/config/BinTools.java | |
parent | 64f80799ed5c6369ffb6814f939a7964b0fa7c49 (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.java | 29 |
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); |