aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build
diff options
context:
space:
mode:
authorGravatar Lukacs Berki <lberki@google.com>2016-09-21 13:21:56 +0000
committerGravatar Laszlo Csomor <laszlocsomor@google.com>2016-09-22 09:51:25 +0000
commitae7be6f016933ca91c2dab3d6c4af785622b2988 (patch)
treeac2e0f677f018e7c7a0510207b985e8d7c93e97d /src/main/java/com/google/devtools/build
parente5da53c253ca5fafb60a8c1e598d3a147ac08efd (diff)
Replace BuildConfiguration.Fragment#collectExecutables() with a #getShellExecutable() method.
That's all it was used for anyway. -- MOS_MIGRATED_REVID=133824769
Diffstat (limited to 'src/main/java/com/google/devtools/build')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/CommandHelper.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java29
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfiguration.java14
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/LinkCommandLine.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/test/TestRunnerAction.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/test/TestStrategy.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/runtime/commands/RunCommand.java4
8 files changed, 32 insertions, 27 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/CommandHelper.java b/src/main/java/com/google/devtools/build/lib/analysis/CommandHelper.java
index 18904863af..eb4208aef4 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/CommandHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/CommandHelper.java
@@ -306,6 +306,6 @@ public final class CommandHelper {
private PathFragment shellPath(Map<String, String> executionInfo) {
// Use vanilla /bin/bash for actions running on mac machines.
return executionInfo.containsKey("requires-darwin")
- ? new PathFragment("/bin/bash") : ruleContext.getConfiguration().getShExecutable();
+ ? new PathFragment("/bin/bash") : ruleContext.getConfiguration().getShellExecutable();
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java
index 6e34e0ffbd..988e1d812e 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java
@@ -568,7 +568,7 @@ public class SpawnAction extends AbstractAction implements ExecutionInfoSpecifie
Iterable<String> arguments = argumentsBuilder.build();
// Check to see if we need to use param file.
Artifact paramsFile = ParamFileHelper.getParamsFileMaybe(
- buildExecutableArgs(configuration.getShExecutable()),
+ buildExecutableArgs(configuration.getShellExecutable()),
arguments,
commandLine,
paramFileInfo,
@@ -589,7 +589,7 @@ public class SpawnAction extends AbstractAction implements ExecutionInfoSpecifie
buildSpawnAction(
owner,
configuration.getLocalShellEnvironment(),
- configuration.getShExecutable(),
+ configuration.getShellExecutable(),
paramsFile,
paramFileWriteAction));
if (paramFileWriteAction != null) {
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java
index 272582da94..8f01d0d0fe 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java
@@ -198,11 +198,13 @@ public final class BuildConfiguration {
}
/**
- * Add mappings from generally available tool names (like "sh") to their paths
- * that actions can access.
+ * Returns the shell to be used.
+ *
+ * <p>Each configuration instance must have at most one fragment that returns non-null.
*/
@SuppressWarnings("unused")
- public void defineExecutables(ImmutableMap.Builder<String, PathFragment> builder) {
+ public PathFragment getShellExecutable() {
+ return null;
}
/**
@@ -1065,7 +1067,7 @@ public final class BuildConfiguration {
private final boolean actionsEnabled;
// TODO(bazel-team): Move this to a configuration fragment.
- private final PathFragment shExecutable;
+ private final PathFragment shellExecutable;
/**
* The global "make variables" such as "$(TARGET_CPU)"; these get applied to all rules analyzed in
@@ -1285,7 +1287,7 @@ public final class BuildConfiguration {
? options.outputDirectoryName : mnemonic;
this.platformName = buildPlatformName();
- this.shExecutable = collectExecutables().get("sh");
+ this.shellExecutable = computeShellExecutable();
this.outputRoots = outputRoots != null
? outputRoots
@@ -2066,8 +2068,8 @@ public final class BuildConfiguration {
/**
* Returns the path to sh.
*/
- public PathFragment getShExecutable() {
- return shExecutable;
+ public PathFragment getShellExecutable() {
+ return shellExecutable;
}
/**
@@ -2366,12 +2368,17 @@ public final class BuildConfiguration {
/**
* Collects executables defined by fragments.
*/
- private ImmutableMap<String, PathFragment> collectExecutables() {
- ImmutableMap.Builder<String, PathFragment> builder = new ImmutableMap.Builder<>();
+ private PathFragment computeShellExecutable() {
+ PathFragment result = null;
+
for (Fragment fragment : fragments.values()) {
- fragment.defineExecutables(builder);
+ if (fragment.getShellExecutable() != null) {
+ Verify.verify(result == null);
+ result = fragment.getShellExecutable();
+ }
}
- return builder.build();
+
+ return result;
}
/**
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfiguration.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfiguration.java
index 5567f08e07..a09d9ba66a 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelConfiguration.java
@@ -56,26 +56,24 @@ public class BazelConfiguration extends Fragment {
}
@Override
- public void defineExecutables(ImmutableMap.Builder<String, PathFragment> builder) {
+ public PathFragment getShellExecutable() {
if (OS.getCurrent() == OS.WINDOWS) {
String path = System.getenv("BAZEL_SH");
if (path != null) {
- builder.put("sh", new PathFragment(path));
+ return new PathFragment(path);
} else {
- builder.put("sh", new PathFragment("c:/tools/msys64/usr/bin/bash.exe"));
+ return new PathFragment("c:/tools/msys64/usr/bin/bash.exe");
}
- return;
}
if (OS.getCurrent() == OS.FREEBSD) {
String path = System.getenv("BAZEL_SH");
if (path != null) {
- builder.put("sh", new PathFragment(path));
+ return new PathFragment(path);
} else {
- builder.put("sh", new PathFragment("/usr/local/bin/bash"));
+ return new PathFragment("/usr/local/bin/bash");
}
- return;
}
- builder.put("sh", new PathFragment("/bin/bash"));
+ return new PathFragment("/bin/bash");
}
@Override
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/LinkCommandLine.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/LinkCommandLine.java
index bb4826e242..db3ab654fd 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/LinkCommandLine.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/LinkCommandLine.java
@@ -411,7 +411,7 @@ public final class LinkCommandLine extends CommandLine {
case DYNAMIC_LIBRARY:
if (interfaceOutput != null) {
- argv.add(configuration.getShExecutable().getPathString());
+ argv.add(configuration.getShellExecutable().getPathString());
argv.add("-c");
argv.add(
"build_iface_so=\"$0\"; impl=\"$1\"; iface=\"$2\"; cmd=\"$3\"; shift 3; "
diff --git a/src/main/java/com/google/devtools/build/lib/rules/test/TestRunnerAction.java b/src/main/java/com/google/devtools/build/lib/rules/test/TestRunnerAction.java
index 19bfdb339e..db3f5839cf 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/test/TestRunnerAction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/test/TestRunnerAction.java
@@ -549,7 +549,7 @@ public class TestRunnerAction extends AbstractAction implements NotifyOnActionCa
}
public PathFragment getShExecutable() {
- return configuration.getShExecutable();
+ return configuration.getShellExecutable();
}
public ImmutableMap<String, String> getLocalShellEnvironment() {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/test/TestStrategy.java b/src/main/java/com/google/devtools/build/lib/rules/test/TestStrategy.java
index ce9e08d8c6..9e26dfd0e2 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/test/TestStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/test/TestStrategy.java
@@ -219,7 +219,7 @@ public abstract class TestStrategy implements TestActionContext {
args.addAll(execSettings.getRunUnder().getOptions());
args.addAll(execArgs);
} else {
- args.add(testAction.getConfiguration().getShExecutable().getPathString());
+ args.add(testAction.getConfiguration().getShellExecutable().getPathString());
args.add("-c");
String runUnderCommand = ShellEscaper.escapeString(execSettings.getRunUnder().getCommand());
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/commands/RunCommand.java b/src/main/java/com/google/devtools/build/lib/runtime/commands/RunCommand.java
index 26dda275a6..ca2b04a2a9 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/commands/RunCommand.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/commands/RunCommand.java
@@ -275,11 +275,11 @@ public class RunCommand implements BlazeCommand {
runUnderValue += " " + ShellEscaper.escapeJoinAll(opts);
}
}
- cmdLine.add(configuration.getShExecutable().getPathString());
+ cmdLine.add(configuration.getShellExecutable().getPathString());
cmdLine.add("-c");
cmdLine.add(runUnderValue + " " + executablePath.getPathString() + " " +
ShellEscaper.escapeJoinAll(args));
- prettyCmdLine.add(configuration.getShExecutable().getPathString());
+ prettyCmdLine.add(configuration.getShellExecutable().getPathString());
prettyCmdLine.add("-c");
prettyCmdLine.add(runUnderValue + " " + prettyExecutablePath.getPathString() + " " +
ShellEscaper.escapeJoinAll(args));