aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/config/ConfigRules.java
diff options
context:
space:
mode:
authorGravatar mstaib <mstaib@google.com>2018-05-16 10:13:51 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-05-16 10:15:49 -0700
commit188b578c0e9995c864d284f22de4e48c220b0596 (patch)
tree104640b011b04e2d787098eacdd52df5bf22981d /src/main/java/com/google/devtools/build/lib/rules/config/ConfigRules.java
parent238079669ec280a972adf68ee987c5d407e15b26 (diff)
Enable manual trimming of config_feature_flags.
This enables users of config_feature_flags to specify the flags used by the transitive closure of a particular target in the transitive_configs attribute of all targets. It also adds a flag - --enforce_transitive_configs_for_config_feature_flag - which enforces this specification and uses it to trim the set of flags available to that target. RELNOTES: None. PiperOrigin-RevId: 196846092
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/config/ConfigRules.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/config/ConfigRules.java6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/config/ConfigRules.java b/src/main/java/com/google/devtools/build/lib/rules/config/ConfigRules.java
index de5e22f779..4d49eafa58 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/config/ConfigRules.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/config/ConfigRules.java
@@ -14,6 +14,7 @@
package com.google.devtools.build.lib.rules.config;
import com.google.common.collect.ImmutableList;
+import com.google.devtools.build.lib.analysis.BaseRuleClasses;
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider.RuleSet;
import com.google.devtools.build.lib.rules.core.CoreRules;
@@ -30,9 +31,12 @@ public final class ConfigRules implements RuleSet {
@Override
public void init(ConfiguredRuleClassProvider.Builder builder) {
+ builder.setTrimmingTransitionFactory(
+ new ConfigFeatureFlagTaggedTrimmingTransitionFactory(BaseRuleClasses.TAGGED_TRIMMING_ATTR));
builder.addRuleDefinition(new ConfigRuleClasses.ConfigBaseRule());
builder.addRuleDefinition(new ConfigRuleClasses.ConfigSettingRule());
- builder.addConfig(ConfigFeatureFlagOptions.class, new ConfigFeatureFlagConfiguration.Loader());
+ builder.addConfig(ConfigFeatureFlagOptions.class,
+ new ConfigFeatureFlagConfiguration.Loader());
builder.addRuleDefinition(new ConfigRuleClasses.ConfigFeatureFlagRule());
builder.addSkylarkAccessibleTopLevels("config_common", new ConfigSkylarkCommon());