aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google
diff options
context:
space:
mode:
authorGravatar Manuel Klimek <klimek@google.com>2015-03-02 15:11:39 +0000
committerGravatar Ulf Adams <ulfjack@google.com>2015-03-05 14:16:39 +0000
commitc9bacf1bf8450be5ebe1e94f50706089dbf33225 (patch)
tree7695fcfc5e0b5c45a037c61c60908dc43ecb0d62 /src/main/java/com/google
parentd8336c1573a0c89d71f38c3e3ccb3bfdbab6ec00 (diff)
Do not use module maps if the crosstool doesn't support them when using the
legacy feature configuration. This requires two fixes: 1. we want to mark the module_maps feature unsupported, if the toolchain itself doesn't provide a module map 2. no legacy feature is allowed to imply the module_maps feature -- MOS_MIGRATED_REVID=87511295
Diffstat (limited to 'src/main/java/com/google')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java2
2 files changed, 4 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java
index 0c172ef285..64bd28e237 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java
@@ -667,6 +667,9 @@ public final class CcCommon {
unsupportedFeaturesBuilder.add(CppRuleClasses.PARSE_HEADERS);
unsupportedFeaturesBuilder.add(CppRuleClasses.PREPROCESS_HEADERS);
}
+ if (toolchain.getCppCompilationContext().getCppModuleMap() == null) {
+ unsupportedFeaturesBuilder.add(CppRuleClasses.MODULE_MAPS);
+ }
Set<String> unsupportedFeatures = unsupportedFeaturesBuilder.build();
ImmutableSet.Builder<String> requestedFeatures = ImmutableSet.builder();
for (String feature : Iterables.concat(DEFAULT_FEATURES, ruleContext.getFeatures())) {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java
index abf15df2b9..fbef38e61c 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java
@@ -708,7 +708,7 @@ public class CppConfiguration extends BuildConfiguration.Fragment {
TextFormat.merge(""
+ "feature {"
+ " name: 'use_module_maps'"
- + " implies: 'module_maps'"
+ + " requires: { feature: 'module_maps' }"
+ " flag_set {"
+ " action: 'c-compile'"
+ " action: 'c++-compile'"