diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis/PlatformConfigurationLoader.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/analysis/PlatformConfigurationLoader.java | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/PlatformConfigurationLoader.java b/src/main/java/com/google/devtools/build/lib/analysis/PlatformConfigurationLoader.java index 6159ee4697..6a1b5c2cb3 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/PlatformConfigurationLoader.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/PlatformConfigurationLoader.java @@ -14,7 +14,10 @@ package com.google.devtools.build.lib.analysis; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; +import com.google.devtools.build.lib.analysis.PlatformOptions.ToolchainResolutionOverride; import com.google.devtools.build.lib.analysis.config.BuildConfiguration; import com.google.devtools.build.lib.analysis.config.BuildOptions; import com.google.devtools.build.lib.analysis.config.ConfigurationEnvironment; @@ -22,6 +25,7 @@ import com.google.devtools.build.lib.analysis.config.ConfigurationFragmentFactor import com.google.devtools.build.lib.analysis.config.FragmentOptions; import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException; import com.google.devtools.build.lib.cmdline.Label; +import java.util.List; /** A loader that creates {@link PlatformConfiguration} instances based on command-line options. */ public class PlatformConfigurationLoader implements ConfigurationFragmentFactory { @@ -46,12 +50,20 @@ public class PlatformConfigurationLoader implements ConfigurationFragmentFactory throws InvalidConfigurationException { // TODO(katre): This will change with remote execution. Label executionPlatform = options.hostPlatform; - return new PlatformConfiguration( executionPlatform, - options.platforms, - options.extraToolchains, - options.toolchainResolutionOverrides, - options.enabledToolchainTypes); + ImmutableList.copyOf(options.platforms), + ImmutableList.copyOf(options.extraToolchains), + convertOverrides(options.toolchainResolutionOverrides), + ImmutableList.copyOf(options.enabledToolchainTypes)); + } + + private static ImmutableMap<Label, Label> convertOverrides( + List<ToolchainResolutionOverride> overrides) { + ImmutableMap.Builder<Label, Label> builder = new ImmutableMap.Builder<>(); + for (ToolchainResolutionOverride override : overrides) { + builder.put(override.toolchainType(), override.toolchainLabel()); + } + return builder.build(); } } |