diff options
author | 2018-04-27 04:46:25 -0700 | |
---|---|---|
committer | 2018-04-27 04:47:59 -0700 | |
commit | 24f4ab06be65db13036d0353771e20c470f25f1a (patch) | |
tree | 3ed5de53f9b500377b19b248e37ed062a88a0c8c /src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java | |
parent | 2da963d63e20a577bd1d9f1d3495c86e9b71debc (diff) |
Add --experimental_use_late_bound_option_defauts flag to toggle usage of late bound option defaults
BuildConfiguration.Fragment#lateBoundOptionDefaults() is going away soon, this flag is added to decouple its removal with the release process.
PiperOrigin-RevId: 194527657
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java | 21 |
1 files changed, 17 insertions, 4 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 9c33df8865..777bfc9579 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 @@ -910,6 +910,16 @@ public class BuildConfiguration { NOTRIM, } + @Option( + name = "experimental_use_late_bound_option_defaults", + defaultValue = "true", + documentationCategory = OptionDocumentationCategory.UNDOCUMENTED, + effectTags = {OptionEffectTag.LOADING_AND_ANALYSIS, OptionEffectTag.AFFECTS_OUTPUTS}, + help = + "Allow using late bound option defaults. The purpose of this option is to help with " + + "removal of late bound option defaults.") + public boolean useLateBoundOptionDefaults; + /** * Converter for --experimental_dynamic_configs. */ @@ -1310,7 +1320,8 @@ public class BuildConfiguration { this.testTimeout = ImmutableMap.copyOf(options.testTimeout); - this.transitiveOptionDetails = computeOptionsMap(buildOptions, fragments.values()); + this.transitiveOptionDetails = + computeOptionsMap(buildOptions, fragments.values(), options.useLateBoundOptionDefaults); ImmutableMap.Builder<String, String> globalMakeEnvBuilder = ImmutableMap.builder(); for (Fragment fragment : fragments.values()) { @@ -1410,12 +1421,14 @@ public class BuildConfiguration { /** Computes and returns the {@link TransitiveOptionDetails} for this configuration. */ private static TransitiveOptionDetails computeOptionsMap( - BuildOptions buildOptions, Iterable<Fragment> fragments) { + BuildOptions buildOptions, Iterable<Fragment> fragments, boolean useLateBoundOptionDefaults) { // Collect from our fragments "alternative defaults" for options where the default // should be something other than what's specified in Option.defaultValue. Map<String, Object> lateBoundDefaults = Maps.newHashMap(); - for (Fragment fragment : fragments) { - lateBoundDefaults.putAll(fragment.lateBoundOptionDefaults()); + if (useLateBoundOptionDefaults) { + for (Fragment fragment : fragments) { + lateBoundDefaults.putAll(fragment.lateBoundOptionDefaults()); + } } return TransitiveOptionDetails.forOptionsWithDefaults( |