aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/ConfigurationCollectionFunction.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/ConfigurationCollectionFunction.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/ConfigurationCollectionFunction.java15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ConfigurationCollectionFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/ConfigurationCollectionFunction.java
index b00f2c8cb8..7d2efe8214 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ConfigurationCollectionFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ConfigurationCollectionFunction.java
@@ -14,6 +14,7 @@
package com.google.devtools.build.lib.skyframe;
import com.google.common.base.Supplier;
+import com.google.common.base.Verify;
import com.google.common.collect.ImmutableSet;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
import com.google.devtools.build.lib.analysis.config.BuildConfigurationCollection;
@@ -23,6 +24,7 @@ import com.google.devtools.build.lib.analysis.config.InvalidConfigurationExcepti
import com.google.devtools.build.lib.analysis.config.PackageProviderForConfigurations;
import com.google.devtools.build.lib.events.EventHandler;
import com.google.devtools.build.lib.events.StoredEventHandler;
+import com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition;
import com.google.devtools.build.lib.packages.Package;
import com.google.devtools.build.lib.skyframe.ConfigurationCollectionValue.ConfigurationCollectionKey;
import com.google.devtools.build.skyframe.SkyFunction;
@@ -105,7 +107,18 @@ public class ConfigurationCollectionFunction implements SkyFunction {
}
targetConfigurations.add(targetConfiguration);
}
- return new BuildConfigurationCollection(targetConfigurations);
+
+ // Sanity check that all host configs are the same. This may not be true once we have
+ // better support for multi-host builds.
+ BuildConfiguration hostConfiguration =
+ targetConfigurations.get(0).getConfiguration(ConfigurationTransition.HOST);
+ for (BuildConfiguration targetConfig :
+ targetConfigurations.subList(1, targetConfigurations.size())) {
+ Verify.verify(
+ targetConfig.getConfiguration(ConfigurationTransition.HOST).equals(hostConfiguration));
+ }
+
+ return new BuildConfigurationCollection(targetConfigurations, hostConfiguration);
}
@Nullable