diff options
author | 2016-11-15 19:11:28 +0000 | |
---|---|---|
committer | 2016-11-16 15:56:40 +0000 | |
commit | 60751d02cf9e2d78ab5d4bf9fee0006b8adcf453 (patch) | |
tree | 0f8ef6fed1f56f2c890e8114e2ce1fe95fccfc73 | |
parent | a37e505de51e5c61a41542d2a8125db5e160ce46 (diff) |
Supports --nodistinct_host_configuration with
--experimental_dynamic_configs=notrim.
This is simply a matter of populating the "global" host
config from the target config instead of applying
the HostTransition patch.
--
MOS_MIGRATED_REVID=139222963
3 files changed, 9 insertions, 5 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java index 9964c7f08f..b8b670acdb 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java @@ -1186,7 +1186,7 @@ public final class BuildConfiguration { + ".blazerc or continuous build")); } - if (useDynamicConfigurations() && !options.useDistinctHostConfiguration) { + if (trimConfigurations() && !options.useDistinctHostConfiguration) { reporter.handle(Event.error( "--nodistinct_host_configuration does not currently work with dynamic configurations")); } 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 007a5c129b..7862aef7b3 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 @@ -121,7 +121,12 @@ public class ConfigurationCollectionFunction implements SkyFunction { Environment env, BuildConfiguration targetConfiguration) throws InvalidConfigurationException, InterruptedException { if (targetConfiguration.useDynamicConfigurations()) { - BuildOptions hostOptions = HostTransition.INSTANCE.apply(targetConfiguration.getOptions()); + BuildOptions targetOptions = targetConfiguration.getOptions(); + BuildOptions hostOptions = + targetOptions.get(BuildConfiguration.Options.class).useDistinctHostConfiguration + ? HostTransition.INSTANCE.apply(targetConfiguration.getOptions()) + : targetOptions; + SkyKey hostConfigKey = BuildConfigurationValue.key( targetConfiguration.trimConfigurations() @@ -133,7 +138,6 @@ public class ConfigurationCollectionFunction implements SkyFunction { // Also preload the target configuration so the configured target functions for // top-level targets don't have to waste cycles from a missing Skyframe dep. - BuildOptions targetOptions = targetConfiguration.getOptions(); SkyKey targetConfigKey = BuildConfigurationValue.key(targetConfiguration.fragmentClasses(), targetOptions); BuildConfigurationValue skyValTarget = (BuildConfigurationValue) diff --git a/src/test/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationTest.java b/src/test/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationTest.java index b1bdd87e3d..48e207cdb1 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationTest.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationTest.java @@ -302,8 +302,8 @@ public class BuildConfigurationTest extends ConfigurationTestCase { "--nodistinct_host_configuration does not currently work with dynamic configurations"; checkError(expectedError, "--nodistinct_host_configuration", "--experimental_dynamic_configs=on"); - checkError(expectedError, - "--nodistinct_host_configuration", "--experimental_dynamic_configs=notrim"); + assertThat(create("--nodistinct_host_configuration", "--experimental_dynamic_configs=notrim")) + .isNotNull(); } @Test |