Automated rollback of commit 92f7b58672baffe5a230f675d7197c2a10892284.
*** Reason for rollback ***
Breakage in blaze nightly
*** Original change description ***
Get rid of unused j2objc module map
PiperOrigin-RevId: 389885762
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java
index 9ebce70..416136d 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/CompilationSupport.java
@@ -1681,6 +1681,47 @@
return Optional.fromNullable(pchHdr);
}
+ /**
+ * Registers an action that will generate a clang module map for this target, using the hdrs
+ * attribute of this rule.
+ */
+ public CompilationSupport registerGenerateModuleMapAction(
+ CompilationArtifacts compilationArtifacts) throws RuleErrorException, InterruptedException {
+ // TODO(bazel-team): Include textual headers in the module map when Xcode 6 support is
+ // dropped.
+ // TODO(b/32225593): Include private headers in the module map.
+ CcCompilationHelper ccCompilationHelper =
+ new CcCompilationHelper(
+ ruleContext,
+ ruleContext,
+ ruleContext.getLabel(),
+ CppHelper.getGrepIncludes(ruleContext),
+ cppSemantics,
+ getFeatureConfigurationForSwiftModuleMap(
+ ruleContext, toolchain, buildConfiguration, cppSemantics),
+ CcCompilationHelper.SourceCategory.CC_AND_OBJC,
+ toolchain,
+ toolchain.getFdoContext(),
+ buildConfiguration,
+ TargetUtils.getExecutionInfo(
+ ruleContext.getRule(), ruleContext.isAllowTagsPropagation()),
+ /* shouldProcessHeaders= */ false);
+
+ ImmutableSortedSet<Artifact> publicHeaders =
+ Stream.concat(
+ attributes.hdrs().toList().stream(),
+ compilationArtifacts.getAdditionalHdrs().toList().stream())
+ .collect(toImmutableSortedSet(naturalOrder()));
+
+ CppModuleMap moduleMap = intermediateArtifacts.swiftModuleMap();
+
+ ccCompilationHelper.setCppModuleMap(moduleMap).addPublicHeaders(publicHeaders);
+
+ ccCompilationHelper.compile(ruleContext);
+
+ return this;
+ }
+
/** Registers an action to generate an extra clang module map. */
private CompilationSupport generateExtraModuleMap(
CppModuleMap moduleMap,
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcLibrary.java
index 0c3a230..af23d4a 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcLibrary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcLibrary.java
@@ -39,8 +39,11 @@
* linking into the final application bundle. See {@link J2ObjcLibraryBaseRule} for details.
*/
public class J2ObjcLibrary implements RuleConfiguredTargetFactory {
+ private final CppSemantics cppSemantics;
- protected J2ObjcLibrary(CppSemantics cppSemantics) {}
+ protected J2ObjcLibrary(CppSemantics cppSemantics) {
+ this.cppSemantics = cppSemantics;
+ }
public static final String NO_ENTRY_CLASS_ERROR_MSG =
"Entry classes must be specified when flag --compilation_mode=opt is on in order to"
@@ -59,6 +62,7 @@
.addDirectCcCompilationContexts(
j2objcCcInfos.stream().map(J2ObjcCcInfo::getCcInfo).collect(toList()))
.setIntermediateArtifacts(ObjcRuleClasses.intermediateArtifacts(ruleContext))
+ .setHasModuleMap()
.build();
}
@@ -83,6 +87,18 @@
J2ObjcMappingFileProvider.union(
ruleContext.getPrerequisites("deps", J2ObjcMappingFileProvider.PROVIDER));
+ CompilationArtifacts moduleMapCompilationArtifacts =
+ new CompilationArtifacts.Builder()
+ .setIntermediateArtifacts(ObjcRuleClasses.intermediateArtifacts(ruleContext))
+ .build();
+
+ new CompilationSupport.Builder(ruleContext, cppSemantics)
+ .setIntermediateArtifacts(ObjcRuleClasses.intermediateArtifacts(ruleContext))
+ .doNotUsePch()
+ .build()
+ .registerGenerateModuleMapAction(moduleMapCompilationArtifacts)
+ .validateAttributes();
+
return new RuleConfiguredTargetBuilder(ruleContext)
.setFilesToBuild(NestedSetBuilder.<Artifact>emptySet(STABLE_ORDER))
.add(RunfilesProvider.class, RunfilesProvider.EMPTY)