aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build
diff options
context:
space:
mode:
authorGravatar Cal Peyser <cpeyser@google.com>2017-01-12 20:00:41 +0000
committerGravatar Marcel Hlopko <hlopko@google.com>2017-01-13 10:57:24 +0000
commit748bbef68037ae57f973bdfe4405b3ccc3791574 (patch)
treeb4df355b3919132b0e216d9d71bc22820984a404 /src/main/java/com/google/devtools/build
parentde501a50f3ca9164322b53c2d597e8d1052e1663 (diff)
All headers in modules arising from an experimental_objc_library are compiled
(as they are for objc_library). This allows for swift/objc interop with experimental_objc_library, since swift imports require compiled headers. -- PiperOrigin-RevId: 144353367 MOS_MIGRATED_REVID=144353367
Diffstat (limited to 'src/main/java/com/google/devtools/build')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibraryHelper.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppRuleClasses.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/CrosstoolCompilationSupport.java1
3 files changed, 8 insertions, 1 deletions
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 43de8b409d..9bdff8b554 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
@@ -1300,7 +1300,8 @@ public final class CcLibraryHelper {
publicHeaders.getHeaders(),
collectModuleMaps(),
additionalExportedHeaders,
- featureConfiguration.isEnabled(CppRuleClasses.HEADER_MODULES),
+ featureConfiguration.isEnabled(CppRuleClasses.HEADER_MODULES)
+ || featureConfiguration.isEnabled(CppRuleClasses.COMPILE_ALL_MODULES),
featureConfiguration.isEnabled(CppRuleClasses.MODULE_MAP_HOME_CWD),
featureConfiguration.isEnabled(CppRuleClasses.GENERATE_SUBMODULES),
!featureConfiguration.isEnabled(CppRuleClasses.MODULE_MAP_WITHOUT_EXTERN_MODULE));
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 92a31cde96..427baceaf5 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
@@ -198,6 +198,11 @@ public class CppRuleClasses {
public static final String HEADER_MODULES = "header_modules";
/**
+ * A string constant for the compile_all_modules feature.
+ */
+ public static final String COMPILE_ALL_MODULES = "compile_all_modules";
+
+ /**
* A string constant for the use_header_modules feature.
*
* <p>This feature is only used during rollout; we expect to default enable this once we
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 1b03052122..1688ba2dc2 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
@@ -277,6 +277,7 @@ public class CrosstoolCompilationSupport extends CompilationSupport {
.getFeatureNames())
// We create a module map by default to allow for Swift interop.
.add(CppRuleClasses.MODULE_MAPS)
+ .add(CppRuleClasses.COMPILE_ALL_MODULES)
.add(CppRuleClasses.COMPILE_ACTION_FLAGS_IN_FLAG_SET)
.add(CppRuleClasses.DEPENDENCY_FILE)
.add(CppRuleClasses.INCLUDE_PATHS);