aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/ToolchainResolutionFunction.java
diff options
context:
space:
mode:
authorGravatar John Cater <jcater@google.com>2017-07-20 17:35:20 +0200
committerGravatar Klaus Aehlig <aehlig@google.com>2017-07-21 09:12:14 +0200
commit00006dcd3202faea815b6621356c277336234151 (patch)
treedd9052edd657b4633c403b7fac4aded48e10c13d /src/main/java/com/google/devtools/build/lib/skyframe/ToolchainResolutionFunction.java
parent1afbac0775d277625a07e318d4eae4627b093225 (diff)
Add --toolchain_resolution_override to allow specifying the toolchain for a given type.
Fixes https://github.com/katre/bazel/issues/6. Change-Id: I6c6e303384277b013bdc27eb80743aa51f2fb98a PiperOrigin-RevId: 162618674
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/ToolchainResolutionFunction.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/ToolchainResolutionFunction.java12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ToolchainResolutionFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/ToolchainResolutionFunction.java
index dbe0e9f02b..28a6ebe0ca 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ToolchainResolutionFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ToolchainResolutionFunction.java
@@ -16,6 +16,8 @@ package com.google.devtools.build.lib.skyframe;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.ImmutableList;
+import com.google.devtools.build.lib.analysis.PlatformConfiguration;
+import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
import com.google.devtools.build.lib.analysis.platform.ConstraintValueInfo;
import com.google.devtools.build.lib.analysis.platform.DeclaredToolchainInfo;
import com.google.devtools.build.lib.analysis.platform.PlatformInfo;
@@ -40,6 +42,16 @@ public class ToolchainResolutionFunction implements SkyFunction {
throws SkyFunctionException, InterruptedException {
ToolchainResolutionKey key = (ToolchainResolutionKey) skyKey.argument();
+ BuildConfiguration configuration = key.configuration();
+ PlatformConfiguration platformConfiguration =
+ configuration.getFragment(PlatformConfiguration.class);
+
+ if (platformConfiguration.hasToolchainOverride(key.toolchainType())) {
+ // Short circuit everything and just return the override.
+ return ToolchainResolutionValue.create(
+ platformConfiguration.getToolchainOverride(key.toolchainType()));
+ }
+
// Get all toolchains.
RegisteredToolchainsValue toolchains;
try {