aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis/TopLevelArtifactHelper.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis/TopLevelArtifactHelper.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/TopLevelArtifactHelper.java55
1 files changed, 19 insertions, 36 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/TopLevelArtifactHelper.java b/src/main/java/com/google/devtools/build/lib/analysis/TopLevelArtifactHelper.java
index e5aefd07ab..d7c9a8a807 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/TopLevelArtifactHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/TopLevelArtifactHelper.java
@@ -23,6 +23,8 @@ import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.rules.test.TestProvider;
import com.google.devtools.build.lib.skyframe.AspectValue;
+import javax.annotation.Nullable;
+
/**
* A small static class containing utility methods for handling the inclusion of
* extra top-level artifacts into the build.
@@ -123,53 +125,34 @@ public final class TopLevelArtifactHelper {
*/
public static ArtifactsToBuild getAllArtifactsToBuild(TransitiveInfoCollection target,
TopLevelArtifactContext context) {
- NestedSetBuilder<Artifact> importantBuilder = NestedSetBuilder.stableOrder();
- NestedSetBuilder<Artifact> allBuilder = NestedSetBuilder.stableOrder();
-
- OutputGroupProvider outputGroupProvider =
- target.getProvider(OutputGroupProvider.class);
-
- for (String outputGroup : context.outputGroups()) {
- NestedSetBuilder<Artifact> results = NestedSetBuilder.stableOrder();
-
- if (outputGroup.equals(OutputGroupProvider.DEFAULT)) {
- // For the default group, we also throw in filesToBuild
- FileProvider fileProvider = target.getProvider(FileProvider.class);
- if (fileProvider != null) {
- results.addTransitive(fileProvider.getFilesToBuild());
- }
- }
-
- if (outputGroupProvider != null) {
- results.addTransitive(outputGroupProvider.getOutputGroup(outputGroup));
- }
-
- if (outputGroup.startsWith(OutputGroupProvider.HIDDEN_OUTPUT_GROUP_PREFIX)) {
- allBuilder.addTransitive(results.build());
- } else {
- importantBuilder.addTransitive(results.build());
- }
- }
-
- NestedSet<Artifact> importantArtifacts = importantBuilder.build();
- allBuilder.addTransitive(importantArtifacts);
- return new ArtifactsToBuild(importantArtifacts, allBuilder.build());
+ return getAllArtifactsToBuild(
+ target.getProvider(OutputGroupProvider.class),
+ target.getProvider(FileProvider.class),
+ context
+ );
}
public static ArtifactsToBuild getAllArtifactsToBuild(
AspectValue aspectValue, TopLevelArtifactContext context) {
+ Aspect aspect = aspectValue.getAspect();
+ return getAllArtifactsToBuild(
+ aspect.getProvider(OutputGroupProvider.class),
+ aspect.getProvider(FileProvider.class),
+ context
+ );
+ }
+
+ public static ArtifactsToBuild getAllArtifactsToBuild(
+ @Nullable OutputGroupProvider outputGroupProvider,
+ @Nullable FileProvider fileProvider,
+ TopLevelArtifactContext context) {
NestedSetBuilder<Artifact> importantBuilder = NestedSetBuilder.stableOrder();
NestedSetBuilder<Artifact> allBuilder = NestedSetBuilder.stableOrder();
- OutputGroupProvider outputGroupProvider =
- aspectValue.getAspect().getProvider(OutputGroupProvider.class);
-
for (String outputGroup : context.outputGroups()) {
NestedSetBuilder<Artifact> results = NestedSetBuilder.stableOrder();
if (outputGroup.equals(OutputGroupProvider.DEFAULT)) {
- // For the default group, we also throw in filesToBuild
- FileProvider fileProvider = aspectValue.getAspect().getProvider(FileProvider.class);
if (fileProvider != null) {
results.addTransitive(fileProvider.getFilesToBuild());
}