aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main
diff options
context:
space:
mode:
authorGravatar Ulf Adams <ulfjack@google.com>2016-04-21 12:21:00 +0000
committerGravatar Kristina Chodorow <kchodorow@google.com>2016-04-21 14:54:43 +0000
commitaa11df2d2156c350d17c1a8d5962915a2414b81e (patch)
tree2f50dcef255c841552bddd360bacb28ee8acea8e /src/main
parente5685efc492f1b0641e11e06e9a1b3538597b7ff (diff)
Clean up the runfiles / files-to-run related code a bit.
-- MOS_MIGRATED_REVID=120433463
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTargetBuilder.java18
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java16
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/Runfiles.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupport.java5
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) {