diff options
author | Cal Peyser <cpeyser@google.com> | 2016-10-31 14:00:19 +0000 |
---|---|---|
committer | Laszlo Csomor <laszlocsomor@google.com> | 2016-10-31 15:05:12 +0000 |
commit | 6a922aab3dbefc45e16b2bd7a16613483dd73caf (patch) | |
tree | c788b69db72e33dba99086f50003c640742ed389 /src/main/java/com | |
parent | 176ff2b4ada5c407c39bf4ea45ef2e64a7c154a6 (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.java | 11 |
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"); } |