Use `RequiredConfigFragmentsProvider` in `RuleContext` and `RequiredFragmentsUtil`.
PiperOrigin-RevId: 391647723
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 d162a39..e70669e 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
@@ -50,8 +50,6 @@
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
import com.google.devtools.build.lib.analysis.config.ConfigConditions;
import com.google.devtools.build.lib.analysis.config.ConfigMatchingProvider;
-import com.google.devtools.build.lib.analysis.config.CoreOptions;
-import com.google.devtools.build.lib.analysis.config.CoreOptions.IncludeConfigFragmentsEnum;
import com.google.devtools.build.lib.analysis.config.Fragment;
import com.google.devtools.build.lib.analysis.config.FragmentClassSet;
import com.google.devtools.build.lib.analysis.config.FragmentCollection;
@@ -212,7 +210,7 @@
@Nullable private final ToolchainCollection<ResolvedToolchainContext> toolchainContexts;
private final ExecGroupCollection execGroupCollection;
private final ConstraintSemantics<RuleContext> constraintSemantics;
- private final ImmutableSet<String> requiredConfigFragments;
+ @Nullable private final RequiredConfigFragmentsProvider requiredConfigFragments;
private final List<Expander> makeVariableExpanders = new ArrayList<>();
/** Map of exec group names to ActionOwners. */
@@ -259,7 +257,7 @@
@Nullable ToolchainCollection<ResolvedToolchainContext> toolchainContexts,
ExecGroupCollection execGroupCollection,
ConstraintSemantics<RuleContext> constraintSemantics,
- ImmutableSet<String> requiredConfigFragments,
+ @Nullable RequiredConfigFragmentsProvider requiredConfigFragments,
String toolsRepository,
StarlarkSemantics starlarkSemantics,
Mutability mutability) {
@@ -1321,7 +1319,7 @@
*/
public ImmutableSortedSet<String> getRequiredConfigFragments() {
ImmutableSortedSet.Builder<String> ans = ImmutableSortedSet.naturalOrder();
- ans.addAll(requiredConfigFragments);
+ ans.addAll(requiredConfigFragments.getRequiredConfigFragments());
for (Expander makeVariableExpander : makeVariableExpanders) {
for (String makeVariable : makeVariableExpander.lookedUpVariables()) {
// User-defined make values may be set either in "--define foo=bar" or in a vardef in the
@@ -1662,21 +1660,7 @@
* rule.
*/
public boolean shouldIncludeRequiredConfigFragmentsProvider() {
- IncludeConfigFragmentsEnum setting =
- getConfiguration()
- .getOptions()
- .get(CoreOptions.class)
- .includeRequiredConfigFragmentsProvider;
- switch (setting) {
- case OFF:
- return false;
- case DIRECT_HOST_ONLY:
- return getConfiguration().isHostConfiguration();
- case DIRECT:
- case TRANSITIVE:
- return true;
- }
- throw new IllegalStateException("Unknown setting: " + setting);
+ return requiredConfigFragments != null;
}
@Override
@@ -1709,7 +1693,7 @@
private ExecGroupCollection.Builder execGroupCollectionBuilder;
private ImmutableMap<String, String> rawExecProperties;
private ConstraintSemantics<RuleContext> constraintSemantics;
- private ImmutableSet<String> requiredConfigFragments = ImmutableSet.of();
+ @Nullable private RequiredConfigFragmentsProvider requiredConfigFragments;
@VisibleForTesting
public Builder(
@@ -1920,7 +1904,8 @@
return this;
}
- public Builder setRequiredConfigFragments(ImmutableSet<String> requiredConfigFragments) {
+ public Builder setRequiredConfigFragments(
+ @Nullable RequiredConfigFragmentsProvider requiredConfigFragments) {
this.requiredConfigFragments = requiredConfigFragments;
return this;
}