aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionBuilder.java
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2018-05-23 12:17:24 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-05-23 12:18:48 -0700
commit5138f9434f87d77d48275c411f5ec5863c8762f9 (patch)
tree8c2c4c27dc161604a68949fedc7f60a56fda31f1 /src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionBuilder.java
parent78335554384a1d88d89c91dbb419f8337ab78459 (diff)
Restrict module usage to C++ actions. Other actions don't support compiling
using C++ modules (yet) and thus we are paying some of the cost such as building transitive modules and a taller critical path without reaping any benefits. PiperOrigin-RevId: 197768129
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionBuilder.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionBuilder.java9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionBuilder.java
index 11a09dba8f..3f46bbdeba 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionBuilder.java
@@ -320,9 +320,7 @@ public class CppCompileActionBuilder {
// finalizeCompileActionBuilder on this builder.
Preconditions.checkNotNull(shouldScanIncludes);
Preconditions.checkNotNull(featureConfiguration);
- boolean useHeaderModules =
- allowUsingHeaderModules
- && featureConfiguration.isEnabled(CppRuleClasses.USE_HEADER_MODULES);
+ boolean useHeaderModules = useHeaderModules();
if (featureConfiguration.actionIsConfigured(getActionName())) {
for (String executionRequirement :
@@ -473,7 +471,10 @@ public class CppCompileActionBuilder {
private boolean useHeaderModules() {
return allowUsingHeaderModules
- && featureConfiguration.isEnabled(CppRuleClasses.USE_HEADER_MODULES);
+ && featureConfiguration.isEnabled(CppRuleClasses.USE_HEADER_MODULES)
+ && (sourceFile.isFileType(CppFileTypes.CPP_SOURCE)
+ || sourceFile.isFileType(CppFileTypes.CPP_HEADER)
+ || sourceFile.isFileType(CppFileTypes.CPP_MODULE_MAP));
}
private boolean shouldPruneModules() {