aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java
diff options
context:
space:
mode:
authorGravatar allevato <allevato@google.com>2018-02-27 09:13:35 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-02-27 09:15:31 -0800
commitd85aaea5d606c659807fff7cfef75781a59860bc (patch)
tree7ac4ebb22c6de0e6b81e600f2d90815e4c23c6a3 /src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java
parent48794a6edac0944ad2ecffc495b765ed10a2a3c9 (diff)
Add --incompatible_strict_objc_module_maps.
This flag changes the behavior of objc_library module map propagation so that module maps are only propagated to direct dependents, not transitive dependents. swift_library targets that import Objective-C code must then list those dependencies directly in its deps instead of depending on them being transitively present. PiperOrigin-RevId: 187184692
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java
index 3019d7a1a3..fbfa23e121 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java
@@ -545,8 +545,13 @@ public final class ObjcCommon {
if (umbrellaHeader.isPresent()) {
objcProvider.add(UMBRELLA_HEADER, umbrellaHeader.get());
}
- objcProvider.add(MODULE_MAP, moduleMap.getArtifact());
- objcProvider.add(TOP_LEVEL_MODULE_MAP, moduleMap);
+ if (context.getFragment(ObjcConfiguration.class).useStrictObjcModuleMaps()) {
+ objcProvider.addForDirectDependents(MODULE_MAP, moduleMap.getArtifact());
+ objcProvider.addForDirectDependents(TOP_LEVEL_MODULE_MAP, moduleMap);
+ } else {
+ objcProvider.add(MODULE_MAP, moduleMap.getArtifact());
+ objcProvider.add(TOP_LEVEL_MODULE_MAP, moduleMap);
+ }
}
objcProvider