diff options
author | Kristina Chodorow <kchodorow@google.com> | 2016-06-16 20:30:57 +0000 |
---|---|---|
committer | Yue Gan <yueg@google.com> | 2016-06-17 09:26:21 +0000 |
commit | bdfd58a8ca2ed5735d6aaa5b238fb0f689515724 (patch) | |
tree | fd40061fd63c6d4403d04e94af05d16ded2cab42 /src/main/java/com/google/devtools/build/lib/rules/android | |
parent | 3b62451a3c9e5eba3a892473d406cd02d84db5c3 (diff) |
Make the execution root match the runfiles tree structure for external repositories
One interesting side effect of how this is implemented is that for external
repositories, bin/ and genfiles/ are combined. External repo output is under
bazel-out/local-fastbuild/repo_name for each repo.
Fixes #1262.
RELNOTES[INC]: Previously, an external repository would be symlinked into the
execution root at execroot/local_repo/external/remote_repo. This changes it to
be at execroot/remote_repo. This may break genrules/Skylark actions that
hardcode execution root paths. If this causes breakages for you, ensure that
genrules are using $(location :target) to access files and Skylark rules are
using http://bazel.io/docs/skylark/lib/File.html's path, dirname, etc.
functions.
--
MOS_MIGRATED_REVID=125095799
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/android')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/android/JackCompilationHelper.java | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/JackCompilationHelper.java b/src/main/java/com/google/devtools/build/lib/rules/android/JackCompilationHelper.java index c067d366aa..130f7a87ba 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/JackCompilationHelper.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/JackCompilationHelper.java @@ -432,11 +432,11 @@ public final class JackCompilationHelper { */ private Artifact postprocessPartialJackAndAddResources( Artifact partialJackLibrary, Artifact resources) { - Artifact result = ruleContext.getUniqueDirectoryArtifact( - JACK_DIRECTORY, - partialJackLibrary.getRootRelativePath().relativeTo( - ruleContext.getUniqueDirectory(PARTIAL_JACK_DIRECTORY)), - ruleContext.getBinOrGenfilesDirectory()); + PathFragment partialPath = new PathFragment( + partialJackLibrary.getRootRelativePath().getPathString() + .replace(PARTIAL_JACK_DIRECTORY, JACK_DIRECTORY)); + Artifact result = ruleContext.getDerivedArtifact( + partialPath, ruleContext.getBinOrGenfilesDirectory()); CustomCommandLine.Builder builder = CustomCommandLine.builder() // Have jack double-check its behavior and crash rather than producing invalid output |