diff options
author | lberki <lberki@google.com> | 2018-04-06 01:52:58 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-04-06 01:54:28 -0700 |
commit | 78651d4a407fd6114d7d1129a26d5500fdeb21f2 (patch) | |
tree | ee22d1d982268b975ab094998703c6e447d83cd1 /src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java | |
parent | 24f19ec2679dd93b1ac5b06e46f3b35807d6e217 (diff) |
Move shell executable to its own configuration fragment.
RELNOTES: None.
PiperOrigin-RevId: 191861074
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java b/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java index c8c477524f..043bee78a1 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java @@ -184,7 +184,7 @@ public final class RuleContext extends TargetContext private final BuildConfiguration hostConfiguration; private final PatchTransition disableLipoTransition; private final ConfigurationFragmentPolicy configurationFragmentPolicy; - private final Class<? extends BuildConfiguration.Fragment> universalFragment; + private final ImmutableList<Class<? extends BuildConfiguration.Fragment>> universalFragments; private final ErrorReporter reporter; @Nullable private final ToolchainContext toolchainContext; @@ -199,7 +199,7 @@ public final class RuleContext extends TargetContext ListMultimap<String, ConfiguredTargetAndData> targetMap, ListMultimap<String, ConfiguredFilesetEntry> filesetEntryMap, ImmutableMap<Label, ConfigMatchingProvider> configConditions, - Class<? extends BuildConfiguration.Fragment> universalFragment, + ImmutableList<Class<? extends BuildConfiguration.Fragment>> universalFragments, String ruleClassNameForLogging, ImmutableMap<String, Attribute> aspectAttributes, @Nullable ToolchainContext toolchainContext) { @@ -214,7 +214,7 @@ public final class RuleContext extends TargetContext .map(a -> a.getDescriptor()) .collect(ImmutableList.toImmutableList()); this.configurationFragmentPolicy = builder.configurationFragmentPolicy; - this.universalFragment = universalFragment; + this.universalFragments = universalFragments; this.targetMap = targetMap; this.filesetEntryMap = filesetEntryMap; this.configConditions = configConditions; @@ -452,7 +452,7 @@ public final class RuleContext extends TargetContext public <T extends Fragment> boolean isLegalFragment( Class<T> fragment, ConfigurationTransition transition) { - return fragment == universalFragment + return universalFragments.contains(fragment) || fragment == PlatformConfiguration.class || configurationFragmentPolicy.isLegalConfigurationFragment(fragment, transition); } @@ -1405,7 +1405,7 @@ public final class RuleContext extends TargetContext private final AnalysisEnvironment env; private final Rule rule; private final ConfigurationFragmentPolicy configurationFragmentPolicy; - private Class<? extends BuildConfiguration.Fragment> universalFragment; + private ImmutableList<Class<? extends BuildConfiguration.Fragment>> universalFragments; private final BuildConfiguration configuration; private final BuildConfiguration hostConfiguration; private PatchTransition disableLipoTransition; @@ -1453,7 +1453,7 @@ public final class RuleContext extends TargetContext targetMap, filesetEntryMap, configConditions, - universalFragment, + universalFragments, getRuleClassNameForLogging(), aspectAttributes != null ? aspectAttributes : ImmutableMap.<String, Attribute>of(), toolchainContext); @@ -1498,12 +1498,13 @@ public final class RuleContext extends TargetContext /** * Sets the fragment that can be legally accessed even when not explicitly declared. */ - Builder setUniversalFragment(Class<? extends BuildConfiguration.Fragment> fragment) { + Builder setUniversalFragments( + ImmutableList<Class<? extends BuildConfiguration.Fragment>> fragments) { // TODO(bazel-team): Add this directly to ConfigurationFragmentPolicy, so we // don't need separate logic specifically for checking this fragment. The challenge is // that we need RuleClassProvider to figure out what this fragment is, and not every // call state that creates ConfigurationFragmentPolicy has access to that. - this.universalFragment = fragment; + this.universalFragments = fragments; return this; } |