diff options
author | 2017-07-20 17:35:20 +0200 | |
---|---|---|
committer | 2017-07-21 09:12:14 +0200 | |
commit | 00006dcd3202faea815b6621356c277336234151 (patch) | |
tree | dd9052edd657b4633c403b7fac4aded48e10c13d /src/main/java/com/google/devtools/build/lib/skyframe/ToolchainResolutionFunction.java | |
parent | 1afbac0775d277625a07e318d4eae4627b093225 (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.java | 12 |
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 { |