aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com
diff options
context:
space:
mode:
authorGravatar Ulf Adams <ulfjack@google.com>2015-09-03 17:00:54 +0000
committerGravatar David Chen <dzc@google.com>2015-09-03 22:17:02 +0000
commit4226be2ddaf265c1eba70f28e0ed1d9578cf6690 (patch)
treee76ae52098d11cff0741ec96a1fdbd1729962fa7 /src/main/java/com
parentc49ebe1d6433fee4a91f026462767f6d685e6346 (diff)
Always inject the runfiles prefix into the Runfiles.Builder.
The other constructor is now private. -- MOS_MIGRATED_REVID=102252544
Diffstat (limited to 'src/main/java/com')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/Runfiles.java14
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/SourceManifestAction.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/Package.java9
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/NativeLibs.java7
4 files changed, 23 insertions, 15 deletions
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 bdef891013..2c44a32adb 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
@@ -19,7 +19,6 @@ import com.google.common.base.Function;
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
-import com.google.devtools.build.lib.Constants;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.analysis.RuleConfiguredTarget.Mode;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
@@ -221,7 +220,7 @@ public final class Runfiles {
NestedSet<SymlinkEntry> rootSymlinks,
NestedSet<PruningManifest> pruningManifests,
EmptyFilesSupplier emptyFilesSupplier) {
- this.suffix = suffix.isEmpty() ? Constants.DEFAULT_RUNFILES_PREFIX : suffix;
+ this.suffix = suffix;
this.unconditionalArtifacts = Preconditions.checkNotNull(artifacts);
this.symlinks = Preconditions.checkNotNull(symlinks);
this.rootSymlinks = Preconditions.checkNotNull(rootSymlinks);
@@ -505,7 +504,7 @@ public final class Runfiles {
/**
* Only used for Runfiles.EMPTY.
*/
- public Builder() {
+ private Builder() {
this.suffix = "";
}
@@ -769,12 +768,15 @@ public final class Runfiles {
* pruning manifests in the merge.
*/
private Builder merge(Runfiles runfiles, boolean includePruningManifests) {
+ if (runfiles.isEmpty()) {
+ return this;
+ }
+ // The suffix should be the same within any blaze build, except for the EMPTY runfiles, which
+ // may have an empty suffix, but that is covered above.
+ Preconditions.checkArgument(suffix.equals(runfiles.suffix));
artifactsBuilder.addTransitive(runfiles.getUnconditionalArtifacts());
symlinksBuilder.addTransitive(runfiles.getSymlinks());
rootSymlinksBuilder.addTransitive(runfiles.getRootSymlinks());
- if (suffix.isEmpty()) {
- suffix = runfiles.suffix;
- }
if (includePruningManifests) {
pruningManifestsBuilder.addTransitive(runfiles.getPruningManifests());
}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/SourceManifestAction.java b/src/main/java/com/google/devtools/build/lib/analysis/SourceManifestAction.java
index 5d573e5e86..c026793e17 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/SourceManifestAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/SourceManifestAction.java
@@ -289,16 +289,18 @@ public class SourceManifestAction extends AbstractFileWriteAction {
private final ManifestWriter manifestWriter;
private final ActionOwner owner;
private final Artifact output;
- private final Runfiles.Builder runfilesBuilder = new Runfiles.Builder();
+ private final Runfiles.Builder runfilesBuilder;
- public Builder(ManifestType manifestType, ActionOwner owner, Artifact output) {
+ public Builder(String prefix, ManifestType manifestType, ActionOwner owner, Artifact output) {
+ this.runfilesBuilder = new Runfiles.Builder(prefix);
manifestWriter = manifestType;
this.owner = owner;
this.output = output;
}
@VisibleForTesting
- Builder(ManifestWriter manifestWriter, ActionOwner owner, Artifact output) {
+ Builder(String prefix, ManifestWriter manifestWriter, ActionOwner owner, Artifact output) {
+ this.runfilesBuilder = new Runfiles.Builder(prefix);
this.manifestWriter = manifestWriter;
this.owner = owner;
this.output = output;
diff --git a/src/main/java/com/google/devtools/build/lib/packages/Package.java b/src/main/java/com/google/devtools/build/lib/packages/Package.java
index c6156ac82f..28681d45b4 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/Package.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/Package.java
@@ -761,6 +761,10 @@ public class Package implements Serializable {
}
static class Builder {
+ protected static Package newPackage(PackageIdentifier packageId) {
+ return new Package(packageId);
+ }
+
/**
* The output instance for this builder. Needs to be instantiated and
* available with name info throughout initialization. All other settings
@@ -822,10 +826,9 @@ public class Package implements Serializable {
}
}
- protected static Package newPackage(PackageIdentifier packageId) {
- return new Package(packageId);
+ Builder(PackageIdentifier id) {
+ this(newPackage(id));
}
- Builder(PackageIdentifier id) { this(newPackage(id)); }
protected PackageIdentifier getPackageIdentifier() {
return pkg.getPackageIdentifier();
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/NativeLibs.java b/src/main/java/com/google/devtools/build/lib/rules/android/NativeLibs.java
index 35ae4b80b5..b1f2233801 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/NativeLibs.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/NativeLibs.java
@@ -146,9 +146,10 @@ public final class NativeLibs {
Artifact inputManifest = AndroidBinary.getDxArtifact(ruleContext, "native_symlinks.manifest");
ruleContext.registerAction(new SourceManifestAction.Builder(
- ManifestType.SOURCE_SYMLINKS, ruleContext.getActionOwner(), inputManifest)
- .addRootSymlinks(symlinks)
- .build());
+ ruleContext.getWorkspaceName(), ManifestType.SOURCE_SYMLINKS, ruleContext.getActionOwner(),
+ inputManifest)
+ .addRootSymlinks(symlinks)
+ .build());
Artifact outputManifest = AndroidBinary.getDxArtifact(ruleContext, "native_symlinks/MANIFEST");
ruleContext.registerAction(new SymlinkTreeAction(
ruleContext.getActionOwner(), inputManifest, outputManifest, false));