From 9a7a5944574124afb70a31ddf704e57fa583f68a Mon Sep 17 00:00:00 2001 From: Cal Peyser Date: Mon, 23 Jan 2017 21:53:40 +0000 Subject: experimental_objc_library excludes private headers from module maps. This brings it in line with the behavior in objc_library. -- PiperOrigin-RevId: 145330154 MOS_MIGRATED_REVID=145330154 --- .../com/google/devtools/build/lib/rules/cpp/CcLibraryHelper.java | 4 +++- .../com/google/devtools/build/lib/rules/cpp/CppRuleClasses.java | 6 ++++++ .../devtools/build/lib/rules/objc/CrosstoolCompilationSupport.java | 1 + 3 files changed, 10 insertions(+), 1 deletion(-) (limited to 'src/main/java/com') diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibraryHelper.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibraryHelper.java index 40485cb627..0f79568c02 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibraryHelper.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibraryHelper.java @@ -1225,7 +1225,9 @@ public final class CcLibraryHelper { new CppModuleMapAction( ruleContext.getActionOwner(), cppModuleMap, - privateHeaders, + featureConfiguration.isEnabled(CppRuleClasses.EXCLUDE_PRIVATE_HEADERS_IN_MODULE_MAPS) + ? ImmutableList.of() + : privateHeaders, publicHeaders.getHeaders(), collectModuleMaps(), additionalExportedHeaders, diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppRuleClasses.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppRuleClasses.java index c26f9563c6..c06bdf006f 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppRuleClasses.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppRuleClasses.java @@ -202,6 +202,12 @@ public class CppRuleClasses { */ public static final String COMPILE_ALL_MODULES = "compile_all_modules"; + /** + * A string constant for the exclude_private_headers_in_module_maps feature. + */ + public static final String EXCLUDE_PRIVATE_HEADERS_IN_MODULE_MAPS = + "exclude_private_headers_in_module_maps"; + /** * A string constant for the use_header_modules feature. * diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/CrosstoolCompilationSupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/CrosstoolCompilationSupport.java index 1bdf71a985..e057c50af8 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/CrosstoolCompilationSupport.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/CrosstoolCompilationSupport.java @@ -294,6 +294,7 @@ public class CrosstoolCompilationSupport extends CompilationSupport { // We create a module map by default to allow for Swift interop. .add(CppRuleClasses.MODULE_MAPS) .add(CppRuleClasses.COMPILE_ALL_MODULES) + .add(CppRuleClasses.EXCLUDE_PRIVATE_HEADERS_IN_MODULE_MAPS) .add(CppRuleClasses.COMPILE_ACTION_FLAGS_IN_FLAG_SET) .add(CppRuleClasses.DEPENDENCY_FILE) .add(CppRuleClasses.INCLUDE_PATHS); -- cgit v1.2.3