diff options
author | Ulf Adams <ulfjack@google.com> | 2016-04-21 12:21:00 +0000 |
---|---|---|
committer | Kristina Chodorow <kchodorow@google.com> | 2016-04-21 14:54:43 +0000 |
commit | aa11df2d2156c350d17c1a8d5962915a2414b81e (patch) | |
tree | 2f50dcef255c841552bddd360bacb28ee8acea8e /src/main | |
parent | e5685efc492f1b0641e11e06e9a1b3538597b7ff (diff) |
Clean up the runfiles / files-to-run related code a bit.
--
MOS_MIGRATED_REVID=120433463
Diffstat (limited to 'src/main')
4 files changed, 21 insertions, 20 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTargetBuilder.java b/src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTargetBuilder.java index 7be598c2b0..abca5ad84f 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTargetBuilder.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTargetBuilder.java @@ -82,7 +82,7 @@ public final class RuleConfiguredTargetBuilder { } FilesToRunProvider filesToRunProvider = new FilesToRunProvider(ruleContext.getLabel(), - RuleContext.getFilesToRun(runfilesSupport, filesToBuild), runfilesSupport, executable); + getFilesToRun(runfilesSupport, filesToBuild), runfilesSupport, executable); add(FileProvider.class, new FileProvider(ruleContext.getLabel(), filesToBuild)); add(FilesToRunProvider.class, filesToRunProvider); addSkylarkTransitiveInfo(FilesToRunProvider.SKYLARK_NAME, filesToRunProvider); @@ -129,6 +129,22 @@ public final class RuleConfiguredTargetBuilder { } /** + * Like getFilesToBuild(), except that it also includes the runfiles middleman, if any. + * Middlemen are expanded in the SpawnStrategy or by the Distributor. + */ + private ImmutableList<Artifact> getFilesToRun( + RunfilesSupport runfilesSupport, NestedSet<Artifact> filesToBuild) { + if (runfilesSupport == null) { + return ImmutableList.copyOf(filesToBuild); + } else { + ImmutableList.Builder<Artifact> allFilesToBuild = ImmutableList.builder(); + allFilesToBuild.addAll(filesToBuild); + allFilesToBuild.add(runfilesSupport.getRunfilesMiddleman()); + return allFilesToBuild.build(); + } + } + + /** * Invokes Blaze's constraint enforcement system: checks that this rule's dependencies * support its environments and reports appropriate errors if violations are found. Also * publishes this rule's supported environments for the rules that depend on it. diff --git a/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java b/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java index 8d930a29e8..fef9393d12 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java @@ -1189,22 +1189,6 @@ public final class RuleContext extends TargetContext } /** - * Like getFilesToBuild(), except that it also includes the runfiles middleman, if any. - * Middlemen are expanded in the SpawnStrategy or by the Distributor. - */ - public static ImmutableList<Artifact> getFilesToRun( - RunfilesSupport runfilesSupport, NestedSet<Artifact> filesToBuild) { - if (runfilesSupport == null) { - return ImmutableList.copyOf(filesToBuild); - } else { - ImmutableList.Builder<Artifact> allFilesToBuild = ImmutableList.builder(); - allFilesToBuild.addAll(filesToBuild); - allFilesToBuild.add(runfilesSupport.getRunfilesMiddleman()); - return allFilesToBuild.build(); - } - } - - /** * Like {@link #getOutputArtifacts()} but for a singular output item. * Reports an error if the "out" attribute is not a singleton. * diff --git a/src/main/java/com/google/devtools/build/lib/analysis/Runfiles.java b/src/main/java/com/google/devtools/build/lib/analysis/Runfiles.java index e9de51bb18..c52eabc5f9 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/Runfiles.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/Runfiles.java @@ -351,7 +351,7 @@ public final class Runfiles { structField = true ) public NestedSet<String> getEmptyFilenames() { - Set<PathFragment> manifest = new TreeSet(); + Set<PathFragment> manifest = new TreeSet<>(); Iterables.addAll( manifest, Iterables.transform(getArtifacts().toCollection(), GET_ROOT_RELATIVE_PATH)); return NestedSetBuilder.wrap( diff --git a/src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupport.java b/src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupport.java index 513bc869d6..98540d248a 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupport.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupport.java @@ -22,6 +22,7 @@ import com.google.devtools.build.lib.analysis.SourceManifestAction.ManifestType; import com.google.devtools.build.lib.analysis.actions.ActionConstructionContext; import com.google.devtools.build.lib.analysis.config.BuildConfiguration; import com.google.devtools.build.lib.analysis.config.RunUnder; +import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.packages.TargetUtils; import com.google.devtools.build.lib.util.Preconditions; import com.google.devtools.build.lib.vfs.FileSystemUtils; @@ -63,7 +64,8 @@ import java.util.Set; * in the dependency analysis, we create a Middleman Artifact which depends on all of these. Actions * which will run an executable should depend on this Middleman Artifact. */ -public class RunfilesSupport { +@Immutable +public final class RunfilesSupport { private static final String RUNFILES_DIR_EXT = ".runfiles"; private final Runfiles runfiles; @@ -340,7 +342,6 @@ public class RunfilesSupport { * * @return the Runfiles object */ - private static Runfiles getRunfiles(TransitiveInfoCollection target) { RunfilesProvider runfilesProvider = target.getProvider(RunfilesProvider.class); if (runfilesProvider != null) { |