From e9c1372a249a061bfd56bc7a7109b40702352100 Mon Sep 17 00:00:00 2001 From: John Cater Date: Thu, 3 Mar 2022 14:32:11 -0500 Subject: [PATCH] Use ToolchainTypeRequirement in ToolchainContext and related classes. Part of Optional Toolchains (#14726). --- .../google/devtools/build/lib/analysis/BUILD | 3 + .../analysis/ResolvedToolchainContext.java | 2 +- .../build/lib/analysis/ToolchainContext.java | 4 +- .../config/ToolchainTypeRequirement.java | 3 + .../starlark/StarlarkToolchainContext.java | 5 +- .../google/devtools/build/lib/skyframe/BUILD | 1 + .../RegisteredToolchainsCycleReporter.java | 2 +- .../SingleToolchainResolutionFunction.java | 48 ++++++----- .../SingleToolchainResolutionValue.java | 19 ++-- .../skyframe/ToolchainResolutionFunction.java | 86 +++++++++++++------ .../UnloadedToolchainContextImpl.java | 5 +- .../ResolvedToolchainContextTest.java | 10 ++- .../testing/ToolchainContextSubject.java | 41 ++++++--- ...SingleToolchainResolutionFunctionTest.java | 9 +- .../ToolchainResolutionFunctionTest.java | 4 +- .../skyframe/ToolchainsForTargetsTest.java | 2 +- .../lib/starlark/StarlarkRuleContextTest.java | 4 +- 17 files changed, 152 insertions(+), 96 deletions(-) diff --git a/src/main/java/com/google/devtools/build/lib/analysis/BUILD b/src/main/java/com/google/devtools/build/lib/analysis/BUILD index 449d7067488075..2a3f68112033bc 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/BUILD +++ b/src/main/java/com/google/devtools/build/lib/analysis/BUILD @@ -985,6 +985,7 @@ java_library( name = "resolved_toolchain_context", srcs = ["ResolvedToolchainContext.java"], deps = [ + ":config/toolchain_type_requirement", ":template_variable_info", ":toolchain_context", "//src/main/java/com/google/devtools/build/lib/analysis/platform", @@ -1091,6 +1092,7 @@ java_library( name = "toolchain_context", srcs = ["ToolchainContext.java"], deps = [ + ":config/toolchain_type_requirement", "//src/main/java/com/google/devtools/build/lib/analysis/platform", "//src/main/java/com/google/devtools/build/lib/cmdline", "//src/main/java/com/google/devtools/build/lib/skyframe:toolchain_context_key", @@ -2296,6 +2298,7 @@ java_library( name = "starlark/starlark_toolchain_context", srcs = ["starlark/StarlarkToolchainContext.java"], deps = [ + ":config/toolchain_type_requirement", ":resolved_toolchain_context", "//src/main/java/com/google/devtools/build/lib/analysis/platform", "//src/main/java/com/google/devtools/build/lib/cmdline", diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ResolvedToolchainContext.java b/src/main/java/com/google/devtools/build/lib/analysis/ResolvedToolchainContext.java index 0e004046af1007..849cb8e3fa1ffa 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/ResolvedToolchainContext.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/ResolvedToolchainContext.java @@ -86,7 +86,7 @@ public static ResolvedToolchainContext load( unloadedToolchainContext.key(), unloadedToolchainContext.executionPlatform(), unloadedToolchainContext.targetPlatform(), - unloadedToolchainContext.requiredToolchainTypes(), + unloadedToolchainContext.toolchainTypes(), unloadedToolchainContext.resolvedToolchainLabels(), // this: targetDescription, diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ToolchainContext.java b/src/main/java/com/google/devtools/build/lib/analysis/ToolchainContext.java index a14c8e1f1408fb..f1778e33a24158 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/ToolchainContext.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/ToolchainContext.java @@ -14,8 +14,8 @@ package com.google.devtools.build.lib.analysis; import com.google.common.collect.ImmutableSet; +import com.google.devtools.build.lib.analysis.config.ToolchainTypeRequirement; import com.google.devtools.build.lib.analysis.platform.PlatformInfo; -import com.google.devtools.build.lib.analysis.platform.ToolchainTypeInfo; import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.skyframe.ToolchainContextKey; @@ -31,7 +31,7 @@ public interface ToolchainContext { PlatformInfo targetPlatform(); /** Returns the toolchain types that were requested. */ - ImmutableSet requiredToolchainTypes(); + ImmutableSet toolchainTypes(); /** Returns the labels of the specific toolchains being used. */ ImmutableSet