diff options
author | 2017-05-09 04:53:37 -0400 | |
---|---|---|
committer | 2017-05-09 10:54:18 -0400 | |
commit | cbbb423663b154d82e3dfa5e9a56839583987999 (patch) | |
tree | 59e7c03030c010d82ede7d4f5087e958a1ebe2d7 /src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java | |
parent | da10d78d723bf2cffa6a1721d840b1125a7cddd1 (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.java | 26 |
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)); } |