aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCompilationContext.java
diff options
context:
space:
mode:
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.java24
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);
}
/**