diff options
author | 2018-02-13 15:43:15 -0800 | |
---|---|---|
committer | 2018-02-13 15:44:43 -0800 | |
commit | d8508989ac30be85f1fd8ac3af2f6f655198c0f9 (patch) | |
tree | 1f6ea10ad465866cb4d4ee85b165540b2da7cc97 /src/main/java/com/google | |
parent | 649d2b12c647d74c6df846adff802b615119ac12 (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/com/google')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/cpp/CompileCommandLine.java | 22 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java | 6 |
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); } |