Re-enable modules pruning for fake compile actions. I think our initial
assessment was wrong and this does work properly now that all the inputs are
properly declared.
--
MOS_MIGRATED_REVID=140618631
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 ca4c177..d1ee7f3 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
@@ -270,12 +270,9 @@
// something that uses A (a header of it), we mark A and all of its transitive deps as inputs.
// We still don't need to rebuild A, as none of its inputs have changed, but we do rebuild B
// now and then the two modules are out of sync.
- // We also have to disable this for fake C++ compile actions as those currently do a build first
- // before discovering inputs and thus would not declare their inputs properly.
boolean shouldPruneModules =
shouldScanIncludes
&& useHeaderModules
- && !fake
&& !getActionName().equals(CppCompileAction.CPP_MODULE_COMPILE);
if (useHeaderModules && !shouldPruneModules) {
realMandatoryInputsBuilder.addTransitive(context.getTransitiveModules(usePic));