aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupport.java
diff options
context:
space:
mode:
authorGravatar Kristina Chodorow <kchodorow@google.com>2016-04-19 13:55:24 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2016-04-20 11:12:35 +0000
commit857cda2c45a5cc68c3fa398311c48c571a64915d (patch)
tree8a2ad9cd0c92752b1b6105c27d9995dcaf3d24a4 /src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupport.java
parent0b26f446f8312d1c43d162fe706467ef458c4db8 (diff)
Move the runfiles for external repositories to under the x.runfiles/ directory
This also sets the Bazel workspace name to io_bazel_source. Fixes #848. Relevant to #1116, #1124, RELNOTES[INC]: All repositories are now directly under the x.runfiles directory in the runfiles tree (previously, external repositories were at x.runfiles/main-repo/external/other-repo. This simplifies handling remote repository runfiles considerably, but will break existing references to external repository runfiles. --- Furthermore, if a Bazel project does not provide a workspace name in the WORKSPACE file, Bazel will now default to using __main__ as the workspace name (instead of "", as previously). The repository's runfiles will appear under x.runfiles/__main__/. -- MOS_MIGRATED_REVID=120224534
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupport.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupport.java10
1 files changed, 9 insertions, 1 deletions
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 07282a2bd0..513bc869d6 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
@@ -97,7 +97,8 @@ public class RunfilesSupport {
&& TargetUtils.isTestRule(ruleContext.getRule())) {
TransitiveInfoCollection runUnderTarget =
ruleContext.getPrerequisite(":run_under", Mode.DATA);
- runfiles = new Runfiles.Builder(ruleContext.getWorkspaceName())
+ runfiles = new Runfiles.Builder(
+ ruleContext.getWorkspaceName(), ruleContext.getConfiguration().legacyExternalRunfiles())
.merge(getRunfiles(runUnderTarget))
.merge(runfiles)
.build();
@@ -233,6 +234,13 @@ public class RunfilesSupport {
}
/**
+ * Returns the name of the workspace that the build is occurring in.
+ */
+ public PathFragment getWorkspaceName() {
+ return runfiles.getSuffix();
+ }
+
+ /**
* Returns the middleman artifact that depends on getExecutable(),
* getRunfilesManifest(), and getRunfilesSymlinkTargets(). Anything which
* needs to actually run the executable should depend on this.