From 0dd5a680f2d6d209a1b814071a3131d3a469995d Mon Sep 17 00:00:00 2001 From: ccalvarin Date: Fri, 10 Nov 2017 01:40:01 +0100 Subject: Add option-specified warning. Accept warnings specified by flag. This flag will cause a warning to be printed like a standard Option deprecation warning or any other warning from options parsing. This can be used to deprecate definitions of config expansion or bazelrc files. This should not be used to deprecate internal option specifications. RELNOTES: None. PiperOrigin-RevId: 175231963 --- .../devtools/build/lib/runtime/BlazeOptionHandler.java | 4 ++++ .../devtools/build/lib/runtime/CommonCommandOptions.java | 15 +++++++++++++++ 2 files changed, 19 insertions(+) (limited to 'src/main/java/com/google/devtools/build/lib/runtime') diff --git a/src/main/java/com/google/devtools/build/lib/runtime/BlazeOptionHandler.java b/src/main/java/com/google/devtools/build/lib/runtime/BlazeOptionHandler.java index cb7548ba81..248ba4578b 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/BlazeOptionHandler.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/BlazeOptionHandler.java @@ -292,6 +292,10 @@ public abstract class BlazeOptionHandler { for (String warning : optionsParser.getWarnings()) { eventHandler.handle(Event.warn(warning)); } + CommonCommandOptions commonOptions = optionsParser.getOptions(CommonCommandOptions.class); + for (String warning : commonOptions.deprecationWarnings) { + eventHandler.handle(Event.warn(warning)); + } } catch (OptionsParsingException e) { eventHandler.handle(Event.error(e.getMessage())); return ExitCode.COMMAND_LINE_ERROR; diff --git a/src/main/java/com/google/devtools/build/lib/runtime/CommonCommandOptions.java b/src/main/java/com/google/devtools/build/lib/runtime/CommonCommandOptions.java index 1f4e0d738f..c93f667878 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/CommonCommandOptions.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/CommonCommandOptions.java @@ -275,4 +275,19 @@ public class CommonCommandOptions extends OptionsBase { + "logged with the rest of the Bazel invocation." ) public ToolCommandLineEvent toolCommandLine; + + @Option( + name = "unconditional_warning", + defaultValue = "", + documentationCategory = OptionDocumentationCategory.UNDOCUMENTED, + effectTags = {OptionEffectTag.TERMINAL_OUTPUT}, + allowMultiple = true, + help = + "A warning that will unconditionally get printed with build warnings and errors. This is " + + "useful to deprecate bazelrc files or --config definitions. If the intent is to " + + "effectively deprecate some flag or combination of flags, this is NOT sufficient. " + + "The flag or flags should use the deprecationWarning field in the option definition, " + + "or the bad combination should be checked for programmatically." + ) + public List deprecationWarnings; } -- cgit v1.2.3