aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/ToolchainUtil.java
diff options
context:
space:
mode:
authorGravatar John Cater <jcater@google.com>2018-02-06 11:04:17 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-02-06 11:05:56 -0800
commit71dbed482868e5a94eb945063c6dd6209aaf776c (patch)
tree4a178d020b1e5977ddca3940dab5cb0b58c490b4 /src/main/java/com/google/devtools/build/lib/skyframe/ToolchainUtil.java
parent33c419bb0952721f056f01a0374f9f2d238e98bd (diff)
Update ToolchainResolutionFunction to consider multiple available
execution platforms. Part of #4442. Change-Id: I6678d57f4aaadcb19032bf58820606242ba66a25 PiperOrigin-RevId: 184707708
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/ToolchainUtil.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/ToolchainUtil.java15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ToolchainUtil.java b/src/main/java/com/google/devtools/build/lib/skyframe/ToolchainUtil.java
index cbfcbd4514..abc002ac57 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ToolchainUtil.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ToolchainUtil.java
@@ -18,6 +18,7 @@ import com.google.auto.value.AutoValue;
import com.google.common.base.Joiner;
import com.google.common.collect.ImmutableBiMap;
import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Iterables;
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.PlatformConfiguration;
import com.google.devtools.build.lib.analysis.ToolchainContext;
@@ -202,7 +203,7 @@ public class ToolchainUtil {
for (Label toolchainType : requiredToolchains) {
registeredToolchainKeys.add(
ToolchainResolutionValue.key(
- configuration, toolchainType, targetPlatform, executionPlatform));
+ configuration, toolchainType, targetPlatform, ImmutableList.of(executionPlatform)));
}
Map<
@@ -238,9 +239,17 @@ public class ToolchainUtil {
if (valueOrException.get() == null) {
valuesMissing = true;
} else {
+ ToolchainResolutionValue toolchainResolutionValue =
+ (ToolchainResolutionValue) valueOrException.get();
+
+ // TODO(https://github.com/bazelbuild/bazel/issues/4442): Handle finding the best
+ // execution platform when multiple are available.
Label toolchainLabel =
- ((ToolchainResolutionValue) valueOrException.get()).toolchainLabel();
- builder.put(requiredToolchainType, toolchainLabel);
+ Iterables.getFirst(
+ toolchainResolutionValue.availableToolchainLabels().values(), null);
+ if (toolchainLabel != null) {
+ builder.put(requiredToolchainType, toolchainLabel);
+ }
}
} catch (NoToolchainFoundException e) {
// Save the missing type and continue looping to check for more.