diff options
author | Lukacs Berki <lberki@google.com> | 2016-11-11 10:00:53 +0000 |
---|---|---|
committer | Klaus Aehlig <aehlig@google.com> | 2016-11-11 10:56:56 +0000 |
commit | 9f74dfbc7aba8e455150f8eba4b616c56467e598 (patch) | |
tree | 0fa37bdff01c4610c6b4adc982caa0980e5b0569 /src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseFunction.java | |
parent | 279a061eb0873df4e8ea71755684037b4bdd511f (diff) |
Implement build tag filtering.
If the --build_tag_filters option is specified, targets built will be filtered according to their tags (at least one included, none excluded)
--
MOS_MIGRATED_REVID=138856195
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseFunction.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseFunction.java | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseFunction.java index 60600caa1a..7a87ba202b 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/TargetPatternPhaseFunction.java @@ -25,7 +25,6 @@ import com.google.devtools.build.lib.packages.Target; import com.google.devtools.build.lib.packages.TargetUtils; import com.google.devtools.build.lib.pkgcache.CompileOneDependencyTransformer; import com.google.devtools.build.lib.pkgcache.FilteringPolicies; -import com.google.devtools.build.lib.pkgcache.LoadingOptions; import com.google.devtools.build.lib.pkgcache.LoadingPhaseRunner; import com.google.devtools.build.lib.pkgcache.TargetProvider; import com.google.devtools.build.lib.pkgcache.TestFilter; @@ -73,8 +72,7 @@ final class TargetPatternPhaseFunction implements SkyFunction { } // Determine targets to build: - ResolvedTargets<Target> targets = getTargetsToBuild(env, - options.getTargetPatterns(), options.getOffset(), options.getCompileOneDependency()); + ResolvedTargets<Target> targets = getTargetsToBuild(env, options); // If the --build_tests_only option was specified or we want to run tests, we need to determine // the list of targets to test. For that, we remove manual tests and apply the command-line @@ -185,16 +183,14 @@ final class TargetPatternPhaseFunction implements SkyFunction { /** * Interpret the command-line arguments. * - * @param targetPatterns the list of command-line target patterns specified by the user - * @param compileOneDependency if true, enables alternative interpretation of targetPatterns; see - * {@link LoadingOptions#compileOneDependency} + * @param options the command-line arguments in structured form */ private static ResolvedTargets<Target> getTargetsToBuild( - Environment env, List<String> targetPatterns, String offset, boolean compileOneDependency) - throws InterruptedException { + Environment env, TargetPatternList options) throws InterruptedException { List<SkyKey> patternSkyKeys = new ArrayList<>(); for (TargetPatternSkyKeyOrException keyOrException : - TargetPatternValue.keys(targetPatterns, FilteringPolicies.FILTER_MANUAL, offset)) { + TargetPatternValue.keys(options.getTargetPatterns(), FilteringPolicies.FILTER_MANUAL, + options.getOffset())) { try { patternSkyKeys.add(keyOrException.getSkyKey()); } catch (TargetParsingException e) { @@ -231,8 +227,10 @@ final class TargetPatternPhaseFunction implements SkyFunction { } } - ResolvedTargets<Target> result = builder.build(); - if (compileOneDependency) { + ResolvedTargets<Target> result = builder + .filter(TargetUtils.tagFilter(options.getBuildTargetFilter())) + .build(); + if (options.getCompileOneDependency()) { TargetProvider targetProvider = new EnvironmentBackedRecursivePackageProvider(env); try { return new CompileOneDependencyTransformer(targetProvider) |