diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java index 3e48671493..55ac445662 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcRuleClasses.java @@ -55,6 +55,7 @@ import com.google.devtools.build.lib.rules.apple.AppleToolchain.RequiresXcodeCon import com.google.devtools.build.lib.rules.apple.Platform; import com.google.devtools.build.lib.rules.apple.Platform.PlatformType; import com.google.devtools.build.lib.rules.cpp.CppConfiguration; +import com.google.devtools.build.lib.rules.cpp.CppModuleMap.UmbrellaHeaderStrategy; import com.google.devtools.build.lib.rules.proto.ProtoSourceFileBlacklist; import com.google.devtools.build.lib.syntax.Type; import com.google.devtools.build.lib.util.FileType; @@ -117,9 +118,14 @@ public class ObjcRuleClasses { // We need to append "_j2objc" to the name of the generated archive file to distinguish it from // the C/C++ archive file created by proto_library targets with attribute cc_api_version // specified. + // Generate an umbrella header for the module map. The headers declared in module maps are + // compiled using the #import directives which are incompatible with J2ObjC segmented headers. + // We need to #iclude all the headers in an umbrella header and then declare the umbrella header + // in the module map. return new IntermediateArtifacts( ruleContext, - /*archiveFileNameSuffix=*/"_j2objc"); + /*archiveFileNameSuffix=*/"_j2objc", + UmbrellaHeaderStrategy.GENERATE); } public static Artifact artifactByAppendingToBaseName(RuleContext context, String suffix) { |