aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com
diff options
context:
space:
mode:
authorGravatar Cal Peyser <cpeyser@google.com>2016-10-31 14:00:19 +0000
committerGravatar Laszlo Csomor <laszlocsomor@google.com>2016-10-31 15:05:12 +0000
commit6a922aab3dbefc45e16b2bd7a16613483dd73caf (patch)
treec788b69db72e33dba99086f50003c640742ed389 /src/main/java/com
parent176ff2b4ada5c407c39bf4ea45ef2e64a7c154a6 (diff)
Bring experimental_objc_library module semantics in line with those of
objc_library. That is, a module map is always generated, but modules only used by the library if module maps are enabled. This is in contrast with previous behavior, under which modules were always used. -- MOS_MIGRATED_REVID=137697659
Diffstat (limited to 'src/main/java/com')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/CrosstoolSupport.java11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/CrosstoolSupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/CrosstoolSupport.java
index 8769f56f0b..e00f223c61 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/CrosstoolSupport.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/CrosstoolSupport.java
@@ -47,6 +47,7 @@ import java.util.Collection;
public class CrosstoolSupport {
private static final String OBJC_MODULE_FEATURE_NAME = "use_objc_modules";
+ private static final String NO_ENABLE_MODULES_FEATURE_NAME = "no_enable_modules";
private static final Iterable<String> ACTIVATED_ACTIONS =
ImmutableList.of(
"objc-compile",
@@ -170,12 +171,18 @@ public class CrosstoolSupport {
.getBitcodeMode()
.getFeatureNames())
// We create a module map by default to allow for swift interop.
- .add(OBJC_MODULE_FEATURE_NAME)
.add(CppRuleClasses.MODULE_MAPS)
.add(CppRuleClasses.COMPILE_ACTION_FLAGS_IN_FLAG_SET)
.add(CppRuleClasses.DEPENDENCY_FILE)
.add(CppRuleClasses.INCLUDE_PATHS);
-
+
+ if (ruleContext.getConfiguration().getFragment(ObjcConfiguration.class).moduleMapsEnabled()) {
+ activatedCrosstoolSelectables.add(OBJC_MODULE_FEATURE_NAME);
+ }
+ if (!CompilationAttributes.Builder.fromRuleContext(ruleContext).build().enableModules()) {
+ activatedCrosstoolSelectables.add(NO_ENABLE_MODULES_FEATURE_NAME);
+ }
+
if (ruleContext.getPrerequisiteArtifact("pch", Mode.TARGET) != null) {
activatedCrosstoolSelectables.add("pch");
}