aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/cpp
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2018-08-01 02:47:14 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-08-01 02:48:37 -0700
commit377ef3937ce4a552d9ce1f56c9527400d9a0b72d (patch)
tree829f326c810a67242764db12c2c4519f190f6a95 /src/main/java/com/google/devtools/build/lib/rules/cpp
parentc6876545a6b3170f535e70977c4b633f2a7f9092 (diff)
There is no need to do input discovery or .d file analysis for modular codegen.
Modular codegen simply transforms a .pcm file to a .o file containing the code of inline functions of the module's headers. RELNOTES: None PiperOrigin-RevId: 206902693
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/cpp')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java14
1 files changed, 4 insertions, 10 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 5143793efa..5b7c66faab 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
@@ -268,7 +268,8 @@ public class CppCompileAction extends AbstractAction
this.executionInfo = executionInfo;
this.actionName = actionName;
this.featureConfiguration = featureConfiguration;
- this.needsDotdInputPruning = cppSemantics.needsDotdInputPruning();
+ this.needsDotdInputPruning =
+ cppSemantics.needsDotdInputPruning() && !sourceFile.isFileType(CppFileTypes.CPP_MODULE);
this.needsIncludeValidation = cppSemantics.needsIncludeValidation();
this.includeProcessing = cppSemantics.getIncludeProcessing();
this.actionClassId = actionClassId;
@@ -436,6 +437,8 @@ public class CppCompileAction extends AbstractAction
@Override
public Iterable<Artifact> discoverInputs(ActionExecutionContext actionExecutionContext)
throws ActionExecutionException, InterruptedException {
+ Preconditions.checkArgument(!sourceFile.isFileType(CppFileTypes.CPP_MODULE));
+
additionalInputs = findUsedHeaders(actionExecutionContext);
if (!shouldScanIncludes) {
return additionalInputs;
@@ -449,15 +452,6 @@ public class CppCompileAction extends AbstractAction
return additionalInputs;
}
- if (sourceFile.isFileType(CppFileTypes.CPP_MODULE)) {
- // If we are generating code from a module, the module is all we need.
- // TODO(djasper): Do we really need the source files?
- usedModules = ImmutableSet.of(sourceFile);
- additionalInputs =
- new ImmutableList.Builder<Artifact>().addAll(additionalInputs).add(sourceFile).build();
- return additionalInputs;
- }
-
usedModules =
ccCompilationContext.getUsedModules(usePic, ImmutableSet.copyOf(additionalInputs));
return Iterables.concat(additionalInputs, usedModules);