From 2d93a47d97fbe2c2a95a03a17cf46b1e09acc910 Mon Sep 17 00:00:00 2001 From: Kristina Chodorow Date: Mon, 20 Jul 2015 15:03:33 +0000 Subject: Add --output_filter option Fixes #309. -- MOS_MIGRATED_REVID=98639996 --- .../google/devtools/build/lib/buildtool/BuildRequest.java | 9 +++++++++ .../com/google/devtools/build/lib/buildtool/BuildTool.java | 14 ++++++++++++++ 2 files changed, 23 insertions(+) (limited to 'src/main/java/com/google/devtools/build') diff --git a/src/main/java/com/google/devtools/build/lib/buildtool/BuildRequest.java b/src/main/java/com/google/devtools/build/lib/buildtool/BuildRequest.java index afe7597b30..f9277a9b3e 100644 --- a/src/main/java/com/google/devtools/build/lib/buildtool/BuildRequest.java +++ b/src/main/java/com/google/devtools/build/lib/buildtool/BuildRequest.java @@ -47,6 +47,7 @@ import java.util.List; import java.util.Set; import java.util.UUID; import java.util.concurrent.ExecutionException; +import java.util.regex.Pattern; /** * A BuildRequest represents a single invocation of the build tool by a user. @@ -120,6 +121,14 @@ public class BuildRequest implements OptionsClassProvider { + "Has no effect if --explain is not enabled.") public boolean verboseExplanations; + @Option(name = "output_filter", + converter = Converters.RegexPatternConverter.class, + defaultValue = "null", + category = "flags", + help = "Only shows warnings for rules with a name matching the provided regular " + + "expression.") + public Pattern outputFilter; + @Deprecated @Option(name = "dump_makefile", defaultValue = "false", diff --git a/src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java b/src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java index d728c63db5..0fe2562fe0 100644 --- a/src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java +++ b/src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java @@ -53,6 +53,7 @@ import com.google.devtools.build.lib.buildtool.buildevent.TestFilteringCompleteE import com.google.devtools.build.lib.cmdline.TargetParsingException; import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.events.Event; +import com.google.devtools.build.lib.events.OutputFilter; import com.google.devtools.build.lib.events.Reporter; import com.google.devtools.build.lib.packages.InputFile; import com.google.devtools.build.lib.packages.License; @@ -83,6 +84,7 @@ import java.util.Map; import java.util.Set; import java.util.concurrent.TimeUnit; import java.util.logging.Logger; +import java.util.regex.Pattern; /** * Provides the bulk of the implementation of the 'blaze build' command. @@ -397,6 +399,8 @@ public class BuildTool { Profiler.instance().markPhase(ProfilePhase.LOAD); runtime.throwPendingException(); + initializeOutputFilter(request); + final boolean keepGoing = request.getViewOptions().keepGoing; Callback callback = new Callback() { @@ -421,6 +425,16 @@ public class BuildTool { return result; } + /** + * Initializes the output filter to the value given with {@code --output_filter}. + */ + private void initializeOutputFilter(BuildRequest request) { + Pattern outputFilter = request.getBuildOptions().outputFilter; + if (outputFilter != null) { + getReporter().setOutputFilter(OutputFilter.RegexOutputFilter.forPattern(outputFilter)); + } + } + /** * Performs the initial phases 0-2 of the build: Setup, Loading and Analysis. *

-- cgit v1.2.3