diff options
author | 2018-08-01 02:47:14 -0700 | |
---|---|---|
committer | 2018-08-01 02:48:37 -0700 | |
commit | 377ef3937ce4a552d9ce1f56c9527400d9a0b72d (patch) | |
tree | 829f326c810a67242764db12c2c4519f190f6a95 /src/main/java/com/google/devtools/build/lib/rules/cpp | |
parent | c6876545a6b3170f535e70977c4b633f2a7f9092 (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.java | 14 |
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); |