diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationContext.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationContext.java | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationContext.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationContext.java index c69e6d93f9..0e0553949a 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationContext.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationContext.java @@ -75,6 +75,8 @@ public final class CcCompilationContext implements CcCompilationContextApi { // Derived from depsContexts. private final ImmutableSet<Artifact> compilationPrerequisites; + private final CppConfiguration.HeadersCheckingMode headersCheckingMode; + @AutoCodec.Instantiator @VisibleForSerialization CcCompilationContext( @@ -90,7 +92,8 @@ public final class CcCompilationContext implements CcCompilationContextApi { ImmutableList<Artifact> directModuleMaps, CppModuleMap cppModuleMap, @Nullable CppModuleMap verificationModuleMap, - boolean propagateModuleMapAsActionInput) { + boolean propagateModuleMapAsActionInput, + CppConfiguration.HeadersCheckingMode headersCheckingMode) { Preconditions.checkNotNull(commandLineCcCompilationContext); this.commandLineCcCompilationContext = commandLineCcCompilationContext; this.declaredIncludeDirs = declaredIncludeDirs; @@ -105,6 +108,7 @@ public final class CcCompilationContext implements CcCompilationContextApi { this.verificationModuleMap = verificationModuleMap; this.compilationPrerequisites = compilationPrerequisites; this.propagateModuleMapAsActionInput = propagateModuleMapAsActionInput; + this.headersCheckingMode = headersCheckingMode; } /** @@ -294,7 +298,8 @@ public final class CcCompilationContext implements CcCompilationContextApi { ccCompilationContext.directModuleMaps, ccCompilationContext.cppModuleMap, ccCompilationContext.verificationModuleMap, - ccCompilationContext.propagateModuleMapAsActionInput); + ccCompilationContext.propagateModuleMapAsActionInput, + ccCompilationContext.headersCheckingMode); } /** @return the C++ module map of the owner. */ @@ -307,6 +312,10 @@ public final class CcCompilationContext implements CcCompilationContextApi { return verificationModuleMap; } + public CppConfiguration.HeadersCheckingMode getHeadersCheckingMode() { + return headersCheckingMode; + } + /** * The parts of the {@code CcCompilationContext} that influence the command line of compilation * actions. @@ -354,6 +363,8 @@ public final class CcCompilationContext implements CcCompilationContextApi { private CppModuleMap cppModuleMap; private CppModuleMap verificationModuleMap; private boolean propagateModuleMapAsActionInput = true; + private CppConfiguration.HeadersCheckingMode headersCheckingMode = + CppConfiguration.HeadersCheckingMode.STRICT; /** The rule that owns the context */ private final RuleContext ruleContext; @@ -565,6 +576,12 @@ public final class CcCompilationContext implements CcCompilationContextApi { return this; } + public Builder setHeadersCheckingMode( + CppConfiguration.HeadersCheckingMode headersCheckingMode) { + this.headersCheckingMode = headersCheckingMode; + return this; + } + /** Builds the {@link CcCompilationContext}. */ public CcCompilationContext build() { return build( @@ -600,7 +617,8 @@ public final class CcCompilationContext implements CcCompilationContextApi { ImmutableList.copyOf(directModuleMaps), cppModuleMap, verificationModuleMap, - propagateModuleMapAsActionInput); + propagateModuleMapAsActionInput, + headersCheckingMode); } /** |