aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompilationContext.java
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2016-11-30 16:55:12 +0000
committerGravatar Irina Iancu <elenairina@google.com>2016-12-01 10:14:25 +0000
commit22d3570c5ee212291d98e29cdccbe6ff350c7a38 (patch)
tree81d83cf4253c18aca3ff8b4dfa6f8f80c2f8ff1e /src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompilationContext.java
parent6f8393f5c5bddbb49a74d3229411e1050d799208 (diff)
Move the useHeaderModules member from CppCompilationContext into the
CppCompileAction. It seems wrong to bind this to a context. Instead, we should be able to determine for each action, whether it can use modules or not. Also allow overwriting the value obtained by the feature configuration in the CppCompileActionBuilder. This can e.g. be used to disable modules in CppSemantics.finalizeCompileActionBuilder(), if modules cannot be supported under certain circumstances. -- MOS_MIGRATED_REVID=140610096
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompilationContext.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompilationContext.java31
1 files changed, 4 insertions, 27 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompilationContext.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompilationContext.java
index ac8f38b183..b1cd506181 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompilationContext.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompilationContext.java
@@ -70,9 +70,6 @@ public final class CppCompilationContext implements TransitiveInfoProvider {
// True if this context is for a compilation that needs transitive module maps.
private final boolean provideTransitiveModuleMaps;
- // True if this context is for a compilation that should use header modules from dependencies.
- private final boolean useHeaderModules;
-
// Derived from depsContexts.
private final ImmutableSet<Artifact> compilationPrerequisites;
@@ -88,8 +85,7 @@ public final class CppCompilationContext implements TransitiveInfoProvider {
NestedSet<Artifact> transitiveModuleMaps,
NestedSet<Artifact> directModuleMaps,
CppModuleMap cppModuleMap,
- boolean provideTransitiveModuleMaps,
- boolean useHeaderModules) {
+ boolean provideTransitiveModuleMaps) {
Preconditions.checkNotNull(commandLineContext);
this.commandLineContext = commandLineContext;
this.declaredIncludeDirs = declaredIncludeDirs;
@@ -102,7 +98,6 @@ public final class CppCompilationContext implements TransitiveInfoProvider {
this.transitiveModuleMaps = transitiveModuleMaps;
this.cppModuleMap = cppModuleMap;
this.provideTransitiveModuleMaps = provideTransitiveModuleMaps;
- this.useHeaderModules = useHeaderModules;
this.compilationPrerequisites = compilationPrerequisites;
}
@@ -292,8 +287,7 @@ public final class CppCompilationContext implements TransitiveInfoProvider {
context.transitiveModuleMaps,
context.directModuleMaps,
context.cppModuleMap,
- context.provideTransitiveModuleMaps,
- context.useHeaderModules);
+ context.provideTransitiveModuleMaps);
}
/**
@@ -344,8 +338,7 @@ public final class CppCompilationContext implements TransitiveInfoProvider {
mergeSets(ownerContext.transitiveModuleMaps, libContext.transitiveModuleMaps),
mergeSets(ownerContext.directModuleMaps, libContext.directModuleMaps),
libContext.cppModuleMap,
- libContext.provideTransitiveModuleMaps,
- libContext.useHeaderModules);
+ libContext.provideTransitiveModuleMaps);
}
/**
@@ -363,11 +356,6 @@ public final class CppCompilationContext implements TransitiveInfoProvider {
return cppModuleMap;
}
- /** @return whether header modules should be used in this context. */
- public boolean getUseHeaderModules() {
- return useHeaderModules;
- }
-
/**
* The parts of the compilation context that influence the command line of
* compilation actions.
@@ -414,7 +402,6 @@ public final class CppCompilationContext implements TransitiveInfoProvider {
private final Set<String> defines = new LinkedHashSet<>();
private CppModuleMap cppModuleMap;
private boolean provideTransitiveModuleMaps = false;
- private boolean useHeaderModules = false;
/** The rule that owns the context */
private final RuleContext ruleContext;
@@ -681,15 +668,6 @@ public final class CppCompilationContext implements TransitiveInfoProvider {
}
/**
- * Sets that the context will be used by a compilation that uses header modules provided by
- * its dependencies.
- */
- public Builder setUseHeaderModules(boolean useHeaderModules) {
- this.useHeaderModules = useHeaderModules;
- return this;
- }
-
- /**
* Builds the {@link CppCompilationContext}.
*/
public CppCompilationContext build() {
@@ -725,8 +703,7 @@ public final class CppCompilationContext implements TransitiveInfoProvider {
transitiveModuleMaps.build(),
directModuleMaps.build(),
cppModuleMap,
- provideTransitiveModuleMaps,
- useHeaderModules);
+ provideTransitiveModuleMaps);
}
/**