aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build
diff options
context:
space:
mode:
authorGravatar Kristina Chodorow <kchodorow@google.com>2015-07-20 15:03:33 +0000
committerGravatar Kristina Chodorow <kchodorow@google.com>2015-07-21 15:13:38 -0400
commit2d93a47d97fbe2c2a95a03a17cf46b1e09acc910 (patch)
tree53cfebbe7aba65287c637f19357e7c3a574ff85c /src/main/java/com/google/devtools/build
parentb04765a2172b5dfa65fa46817734c65e7d0f99e0 (diff)
Add --output_filter option
Fixes #309. -- MOS_MIGRATED_REVID=98639996
Diffstat (limited to 'src/main/java/com/google/devtools/build')
-rw-r--r--src/main/java/com/google/devtools/build/lib/buildtool/BuildRequest.java9
-rw-r--r--src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java14
2 files changed, 23 insertions, 0 deletions
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() {
@@ -422,6 +426,16 @@ public class BuildTool {
}
/**
+ * 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.
* <p>
* Postcondition: On success, populates the BuildRequest's set of targets to