diff options
author | 2017-11-13 08:03:34 -0800 | |
---|---|---|
committer | 2017-11-13 08:04:58 -0800 | |
commit | 9fdedde450245757d2f6521450ffaf3a51fc4bcf (patch) | |
tree | fedffd81e734730cfd7249e0369c75d827b0bcb7 /src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java | |
parent | 4eb87c196279ae4745428db260dde2155c7433e2 (diff) |
toolchain_type can export make variables from the toolchain instead of the
configuration.
PiperOrigin-RevId: 175532550
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 | 33 |
1 files changed, 27 insertions, 6 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 2d4aafa515..332f4c17dc 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 @@ -109,9 +109,9 @@ public class BuildConfiguration implements BuildEvent { /** * An interface for language-specific configurations. * - * <p>All implementations must be immutable and communicate this as clearly as possible - * (e.g. declare {@link ImmutableList} signatures on their interfaces vs. {@link List}). - * This is because fragment instances may be shared across configurations. + * <p>All implementations must be immutable and communicate this as clearly as possible (e.g. + * declare {@link ImmutableList} signatures on their interfaces vs. {@link List}). This is because + * fragment instances may be shared across configurations. */ public abstract static class Fragment { /** @@ -953,9 +953,30 @@ public class BuildConfiguration implements BuildEvent { ) public Label autoCpuEnvironmentGroup; - /** - * Values for --experimental_dynamic_configs. - */ + /** The source of make variables for this configuration. */ + public enum MakeVariableSource { + CONFIGURATION, + TOOLCHAIN + } + + /** Converter for --make_variables_source. */ + public static class MakeVariableSourceConverter extends EnumConverter<MakeVariableSource> { + public MakeVariableSourceConverter() { + super(MakeVariableSource.class, "Make variable source"); + } + } + + @Option( + name = "make_variables_source", + converter = MakeVariableSourceConverter.class, + defaultValue = "configuration", + metadataTags = {OptionMetadataTag.HIDDEN}, + documentationCategory = OptionDocumentationCategory.UNDOCUMENTED, + effectTags = {OptionEffectTag.UNKNOWN} + ) + public MakeVariableSource makeVariableSource; + + /** Values for --experimental_dynamic_configs. */ public enum ConfigsMode { /** Only include the configuration fragments each rule needs. */ ON, |