Added new RuleClass flag to turn off platform support, to stop dependency cycles when loading platforms.
Part of #4128.
Change-Id: Ie55a91aaaec15d8eb537f59131fc2e69a8f9c251
PiperOrigin-RevId: 176509311
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 099cea7..7622f43 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
@@ -208,12 +208,15 @@
// Determine what toolchains are needed by this target.
if (target instanceof Rule) {
Rule rule = ((Rule) target);
- ImmutableSet<Label> requiredToolchains = rule.getRuleClassObject().getRequiredToolchains();
- toolchainContext =
- ToolchainUtil.createToolchainContext(
- env, rule.toString(), requiredToolchains, configuration);
- if (env.valuesMissing()) {
- return null;
+ if (rule.getRuleClassObject().supportsPlatforms()) {
+ ImmutableSet<Label> requiredToolchains =
+ rule.getRuleClassObject().getRequiredToolchains();
+ toolchainContext =
+ ToolchainUtil.createToolchainContext(
+ env, rule.toString(), requiredToolchains, configuration);
+ if (env.valuesMissing()) {
+ return null;
+ }
}
}