aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2018-04-27 04:46:25 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-04-27 04:47:59 -0700
commit24f4ab06be65db13036d0353771e20c470f25f1a (patch)
tree3ed5de53f9b500377b19b248e37ed062a88a0c8c /src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java
parent2da963d63e20a577bd1d9f1d3495c86e9b71debc (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.java21
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(