aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis/PlatformConfigurationLoader.java
diff options
context:
space:
mode:
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.java22
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();
}
}