aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2018-02-13 15:43:15 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-02-13 15:44:43 -0800
commitd8508989ac30be85f1fd8ac3af2f6f655198c0f9 (patch)
tree1f6ea10ad465866cb4d4ee85b165540b2da7cc97 /src/main/java
parent649d2b12c647d74c6df846adff802b615119ac12 (diff)
Set extra action tool path to the value that crosstool will actually use based on feature configuration
PiperOrigin-RevId: 185600940
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CompileCommandLine.java22
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java6
2 files changed, 15 insertions, 13 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CompileCommandLine.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CompileCommandLine.java
index a3d55e2f22..37960deb86 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CompileCommandLine.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CompileCommandLine.java
@@ -74,6 +74,19 @@ public final class CompileCommandLine {
return featureConfiguration.getEnvironmentVariables(actionName, variables);
}
+ /** Returns the tool path for the compilation based on the current feature configuration. */
+ @VisibleForTesting
+ public String getToolPath() {
+ Preconditions.checkArgument(
+ featureConfiguration.actionIsConfigured(actionName),
+ "Expected action_config for '%s' to be configured",
+ actionName);
+ return featureConfiguration
+ .getToolForAction(actionName)
+ .getToolPath(crosstoolTopPathFragment)
+ .getPathString();
+ }
+
/**
* @param overwrittenVariables: Variables that will overwrite original build variables. When null,
* unmodified original variables are used.
@@ -83,14 +96,7 @@ public final class CompileCommandLine {
List<String> commandLine = new ArrayList<>();
// first: The command name.
- Preconditions.checkArgument(
- featureConfiguration.actionIsConfigured(actionName),
- String.format("Expected action_config for '%s' to be configured", actionName));
- commandLine.add(
- featureConfiguration
- .getToolForAction(actionName)
- .getToolPath(crosstoolTopPathFragment)
- .getPathString());
+ commandLine.add(getToolPath());
// second: The compiler options.
commandLine.addAll(getCompilerOptions(overwrittenVariables));
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java
index 79df9f4582..e3a92ec93d 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java
@@ -56,7 +56,6 @@ import com.google.devtools.build.lib.profiler.ProfilerTask;
import com.google.devtools.build.lib.rules.cpp.CcCommon.CoptsFilter;
import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.FeatureConfiguration;
import com.google.devtools.build.lib.rules.cpp.CppCompileActionContext.Reply;
-import com.google.devtools.build.lib.rules.cpp.CppConfiguration.Tool;
import com.google.devtools.build.lib.rules.cpp.CppHelper.PregreppedHeader;
import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
@@ -226,8 +225,6 @@ public class CppCompileAction extends AbstractAction
private CcToolchainFeatures.Variables overwrittenVariables = null;
- private PathFragment gccToolPath;
-
/**
* Creates a new action to compile C/C++ source files.
*
@@ -349,7 +346,6 @@ public class CppCompileAction extends AbstractAction
this.additionalIncludeScanningRoots = ImmutableList.copyOf(additionalIncludeScanningRoots);
this.builtInIncludeDirectories =
ImmutableList.copyOf(cppProvider.getBuiltInIncludeDirectories());
- this.gccToolPath = cppProvider.getToolPathFragment(Tool.GCC);
}
/**
@@ -705,7 +701,7 @@ public class CppCompileAction extends AbstractAction
@Override
public ExtraActionInfo.Builder getExtraActionInfo(ActionKeyContext actionKeyContext) {
CppCompileInfo.Builder info = CppCompileInfo.newBuilder();
- info.setTool(gccToolPath.getPathString());
+ info.setTool(compileCommandLine.getToolPath());
for (String option : getCompilerOptions()) {
info.addCompilerOption(option);
}