Improve the name of supportsPlatforms by renaming to useToolchainResolution.
PiperOrigin-RevId: 253632079
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/common/BazelFilegroupRule.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/common/BazelFilegroupRule.java
index d13ec9f..ca19869 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/common/BazelFilegroupRule.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/common/BazelFilegroupRule.java
@@ -65,10 +65,7 @@
<code>data</code></a> for more information about how to depend on and use data files.
</p>
<!-- #END_BLAZE_RULE.ATTRIBUTE -->*/
- .add(
- attr("data", LABEL_LIST)
- .allowedFileTypes(FileTypeSet.ANY_FILE)
- .dontCheckConstraints())
+ .add(attr("data", LABEL_LIST).allowedFileTypes(FileTypeSet.ANY_FILE).dontCheckConstraints())
.add(attr("output_licenses", LICENSE))
/*<!-- #BLAZE_RULE(filegroup).ATTRIBUTE(path) -->
An optional string to set a path to the files in the group, relative to the package path.
@@ -81,7 +78,7 @@
attr("path", STRING)
.undocumented(
"only used to expose FilegroupPathProvider, which is not currently used"))
- .supportsPlatforms(false)
+ .useToolchainResolution(false)
.build();
}
diff --git a/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java b/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java
index 4528501..e8017c27 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java
@@ -725,7 +725,7 @@
private final Map<String, Attribute> attributes = new LinkedHashMap<>();
private final Set<Label> requiredToolchains = new HashSet<>();
- private boolean supportsPlatforms = true;
+ private boolean useToolchainResolution = true;
private ExecutionPlatformConstraintsAllowed executionPlatformConstraintsAllowed =
ExecutionPlatformConstraintsAllowed.PER_RULE;
private Set<Label> executionPlatformConstraints = new HashSet<>();
@@ -761,7 +761,7 @@
supportsConstraintChecking = parent.supportsConstraintChecking;
addRequiredToolchains(parent.getRequiredToolchains());
- supportsPlatforms = parent.supportsPlatforms;
+ useToolchainResolution = parent.useToolchainResolution;
// Make sure we use the highest priority value from all parents.
executionPlatformConstraintsAllowed(
@@ -885,7 +885,7 @@
supportsConstraintChecking,
thirdPartyLicenseExistencePolicy,
requiredToolchains,
- supportsPlatforms,
+ useToolchainResolution,
executionPlatformConstraintsAllowed,
executionPlatformConstraints,
outputFileKind,
@@ -1387,11 +1387,11 @@
}
/**
- * Rules that support platforms can use toolchains and execution platforms. Rules that are part
- * of configuring toolchains and platforms should set this to {@code false}.
+ * Causes rules to use toolchain resolution to determine the execution platform and toolchains.
+ * Rules that are part of configuring toolchains and platforms should set this to {@code false}.
*/
- public Builder supportsPlatforms(boolean flag) {
- this.supportsPlatforms = flag;
+ public Builder useToolchainResolution(boolean flag) {
+ this.useToolchainResolution = flag;
return this;
}
@@ -1556,7 +1556,7 @@
private final ThirdPartyLicenseExistencePolicy thirdPartyLicenseExistencePolicy;
private final ImmutableSet<Label> requiredToolchains;
- private final boolean supportsPlatforms;
+ private final boolean useToolchainResolution;
private final ExecutionPlatformConstraintsAllowed executionPlatformConstraintsAllowed;
private final ImmutableSet<Label> executionPlatformConstraints;
@@ -1611,7 +1611,7 @@
boolean supportsConstraintChecking,
ThirdPartyLicenseExistencePolicy thirdPartyLicenseExistencePolicy,
Set<Label> requiredToolchains,
- boolean supportsPlatforms,
+ boolean useToolchainResolution,
ExecutionPlatformConstraintsAllowed executionPlatformConstraintsAllowed,
Set<Label> executionPlatformConstraints,
OutputFile.Kind outputFileKind,
@@ -1650,7 +1650,7 @@
this.supportsConstraintChecking = supportsConstraintChecking;
this.thirdPartyLicenseExistencePolicy = thirdPartyLicenseExistencePolicy;
this.requiredToolchains = ImmutableSet.copyOf(requiredToolchains);
- this.supportsPlatforms = supportsPlatforms;
+ this.useToolchainResolution = useToolchainResolution;
this.executionPlatformConstraintsAllowed = executionPlatformConstraintsAllowed;
this.executionPlatformConstraints = ImmutableSet.copyOf(executionPlatformConstraints);
this.buildSetting = buildSetting;
@@ -2559,8 +2559,8 @@
return requiredToolchains;
}
- public boolean supportsPlatforms() {
- return supportsPlatforms;
+ public boolean useToolchainResolution() {
+ return useToolchainResolution;
}
public ExecutionPlatformConstraintsAllowed executionPlatformConstraintsAllowed() {
diff --git a/src/main/java/com/google/devtools/build/lib/query2/cquery/ConfiguredTargetAccessor.java b/src/main/java/com/google/devtools/build/lib/query2/cquery/ConfiguredTargetAccessor.java
index 8787b59..b296515 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/cquery/ConfiguredTargetAccessor.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/cquery/ConfiguredTargetAccessor.java
@@ -216,7 +216,7 @@
}
Rule rule = ((Rule) target);
- if (!rule.getRuleClassObject().supportsPlatforms()) {
+ if (!rule.getRuleClassObject().useToolchainResolution()) {
return null;
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/Alias.java b/src/main/java/com/google/devtools/build/lib/rules/Alias.java
index 1567b7c..5348588 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/Alias.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/Alias.java
@@ -74,9 +74,9 @@
.mandatory())
.canHaveAnyProvider()
// Aliases themselves do not need toolchains or an execution platform, so this is fine.
- // The actual target
- // will resolve platforms and toolchains with no issues regardless of this setting.
- .supportsPlatforms(false)
+ // The actual target will resolve platforms and toolchains with no issues regardless of
+ // this setting.
+ .useToolchainResolution(false)
.build();
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/LabelBuildSettings.java b/src/main/java/com/google/devtools/build/lib/rules/LabelBuildSettings.java
index a816c53..a09c943 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/LabelBuildSettings.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/LabelBuildSettings.java
@@ -70,7 +70,7 @@
.add(attr(":alias", LABEL).value(ACTUAL))
.setBuildSetting(new BuildSetting(flag, LABEL))
.canHaveAnyProvider()
- .supportsPlatforms(false)
+ .useToolchainResolution(false)
.build();
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/ToolchainType.java b/src/main/java/com/google/devtools/build/lib/rules/ToolchainType.java
index edb1552..597a8cd 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/ToolchainType.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/ToolchainType.java
@@ -50,7 +50,7 @@
@Override
public RuleClass build(RuleClass.Builder builder, RuleDefinitionEnvironment environment) {
return builder
- .supportsPlatforms(false)
+ .useToolchainResolution(false)
.removeAttribute("licenses")
.removeAttribute("distribs")
.build();
diff --git a/src/main/java/com/google/devtools/build/lib/rules/platform/PlatformBaseRule.java b/src/main/java/com/google/devtools/build/lib/rules/platform/PlatformBaseRule.java
index 424d537..2ee2827 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/platform/PlatformBaseRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/platform/PlatformBaseRule.java
@@ -41,7 +41,7 @@
.value(ImmutableList.of("manual"))
.nonconfigurable("low-level attribute, used in platform configuration"))
.exemptFromConstraintChecking("this rule helps *define* a constraint")
- .supportsPlatforms(false)
+ .useToolchainResolution(false)
.removeAttribute("deps")
.removeAttribute("data")
.build();
diff --git a/src/main/java/com/google/devtools/build/lib/rules/platform/ToolchainRule.java b/src/main/java/com/google/devtools/build/lib/rules/platform/ToolchainRule.java
index 5fedc80..c1aa78b 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/platform/ToolchainRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/platform/ToolchainRule.java
@@ -47,7 +47,7 @@
.removeAttribute("deps")
.removeAttribute("data")
.exemptFromConstraintChecking("this rule *defines* a constraint")
- .supportsPlatforms(false)
+ .useToolchainResolution(false)
/* <!-- #BLAZE_RULE(toolchain).ATTRIBUTE(toolchain_type) -->
The label of a <code>toolchain_type</code> target that represents the role that this
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java
index 94231f6..d674b5c 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java
@@ -448,7 +448,7 @@
return null;
}
Rule rule = ((Rule) targetAndConfig.getTarget());
- if (!rule.getRuleClassObject().supportsPlatforms()) {
+ if (!rule.getRuleClassObject().useToolchainResolution()) {
return null;
}
BuildConfiguration configuration = targetAndConfig.getConfiguration();
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PostConfiguredTargetFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/PostConfiguredTargetFunction.java
index 0351338..634072e 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/PostConfiguredTargetFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/PostConfiguredTargetFunction.java
@@ -112,7 +112,7 @@
try {
if (configuredTargetAndData.getTarget() instanceof Rule) {
Rule rule = ((Rule) configuredTargetAndData.getTarget());
- if (rule.getRuleClassObject().supportsPlatforms()) {
+ if (rule.getRuleClassObject().useToolchainResolution()) {
ImmutableSet<Label> requiredToolchains =
rule.getRuleClassObject().getRequiredToolchains();
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/RegisteredExecutionPlatformsFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/RegisteredExecutionPlatformsFunction.java
index 255fe0e..d6b64bd 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/RegisteredExecutionPlatformsFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/RegisteredExecutionPlatformsFunction.java
@@ -235,13 +235,9 @@
return true;
}
- // If the rule requires platforms, it can't be used as a platform.
+ // If the rule requires platforms or toolchain resolution, it can't be used as a platform.
RuleClass ruleClass = target.getAssociatedRule().getRuleClassObject();
- if (ruleClass == null) {
- return false;
- }
-
- if (ruleClass.supportsPlatforms()) {
+ if (ruleClass == null || ruleClass.useToolchainResolution()) {
return false;
}