aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2017-05-09 04:53:37 -0400
committerGravatar Kristina Chodorow <kchodorow@google.com>2017-05-09 10:54:18 -0400
commitcbbb423663b154d82e3dfa5e9a56839583987999 (patch)
tree59e7c03030c010d82ede7d4f5087e958a1ebe2d7 /src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java
parentda10d78d723bf2cffa6a1721d840b1125a7cddd1 (diff)
RELNOTES: Effectively remove sysroot from CppConfiguration and allow it to use select statements.
PiperOrigin-RevId: 155480011
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java26
1 files changed, 17 insertions, 9 deletions
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 1b1884ce8d..20fe8e030d 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
@@ -217,6 +217,8 @@ public class CppCompileAction extends AbstractAction
/** Whether this action needs to discover inputs. */
private final boolean discoversInputs;
+ private final ImmutableList<PathFragment> builtInIncludeDirectories;
+
/**
* Set when the action prepares for execution. Used to preserve state between preparation and
* execution.
@@ -271,6 +273,8 @@ public class CppCompileAction extends AbstractAction
* @param actionName a string giving the name of this action for the purpose of toolchain
* evaluation
* @param cppSemantics C++ compilation semantics
+ * @param unfilteredCompilerOptions - Compile options that will always be added.
+ * @param builtInIncludeDirectories - Directories to search for system includes from.
*/
protected CppCompileAction(
ActionOwner owner,
@@ -308,7 +312,9 @@ public class CppCompileAction extends AbstractAction
ImmutableMap<String, String> environment,
String actionName,
Iterable<Artifact> builtinIncludeFiles,
- CppSemantics cppSemantics) {
+ CppSemantics cppSemantics,
+ ImmutableList<String> unfilteredCompilerOptions,
+ ImmutableList<PathFragment> builtInIncludeDirectories) {
super(
owner,
allInputs,
@@ -349,7 +355,8 @@ public class CppCompileAction extends AbstractAction
cppConfiguration,
variables,
actionName,
- dotdFile);
+ dotdFile,
+ unfilteredCompilerOptions);
this.actionContext = actionContext;
this.lipoScannables = lipoScannables;
this.actionClassId = actionClassId;
@@ -363,6 +370,7 @@ public class CppCompileAction extends AbstractAction
this.builtinIncludeFiles = ImmutableList.copyOf(builtinIncludeFiles);
this.cppSemantics = cppSemantics;
this.additionalIncludeScannables = ImmutableList.copyOf(additionalIncludeScannables);
+ this.builtInIncludeDirectories = builtInIncludeDirectories;
}
/**
@@ -381,7 +389,7 @@ public class CppCompileAction extends AbstractAction
@Override
public List<PathFragment> getBuiltInIncludeDirectories() {
- return cppConfiguration.getBuiltInIncludeDirectories();
+ return builtInIncludeDirectories;
}
@Nullable
@@ -835,9 +843,10 @@ public class CppCompileAction extends AbstractAction
if (optionalSourceFile != null) {
allowedIncludes.add(optionalSourceFile);
}
- Iterable<PathFragment> ignoreDirs = cppConfiguration.isStrictSystemIncludes()
- ? cppConfiguration.getBuiltInIncludeDirectories()
- : getValidationIgnoredDirs();
+ Iterable<PathFragment> ignoreDirs =
+ cppConfiguration.isStrictSystemIncludes()
+ ? getBuiltInIncludeDirectories()
+ : getValidationIgnoredDirs();
// Copy the sets to hash sets for fast contains checking.
// Avoid immutable sets here to limit memory churn.
@@ -906,7 +915,7 @@ public class CppCompileAction extends AbstractAction
}
Iterable<PathFragment> getValidationIgnoredDirs() {
- List<PathFragment> cxxSystemIncludeDirs = cppConfiguration.getBuiltInIncludeDirectories();
+ List<PathFragment> cxxSystemIncludeDirs = getBuiltInIncludeDirectories();
return Iterables.concat(
cxxSystemIncludeDirs, context.getSystemIncludeDirs());
}
@@ -1259,9 +1268,8 @@ public class CppCompileAction extends AbstractAction
}
public List<Path> getPermittedSystemIncludePrefixes(Path execRoot) {
- CppConfiguration toolchain = cppConfiguration;
List<Path> systemIncludePrefixes = new ArrayList<>();
- for (PathFragment includePath : toolchain.getBuiltInIncludeDirectories()) {
+ for (PathFragment includePath : getBuiltInIncludeDirectories()) {
if (includePath.isAbsolute()) {
systemIncludePrefixes.add(execRoot.getFileSystem().getPath(includePath));
}