diff options
author | 2018-02-27 09:13:35 -0800 | |
---|---|---|
committer | 2018-02-27 09:15:31 -0800 | |
commit | d85aaea5d606c659807fff7cfef75781a59860bc (patch) | |
tree | 7ac4ebb22c6de0e6b81e600f2d90815e4c23c6a3 /src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java | |
parent | 48794a6edac0944ad2ecffc495b765ed10a2a3c9 (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.java | 9 |
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 |