aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com
diff options
context:
space:
mode:
authorGravatar Dmitry Lomov <dslomov@google.com>2016-04-22 12:50:12 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2016-04-22 13:20:30 +0000
commit33481d7be9fecd54c52a6e535f90718cde198020 (patch)
tree642c5c777b4af76ef7536e9796e686f9cb1030f2 /src/main/java/com
parent899416d11209288f7eafe57729ec8f07b23537e1 (diff)
Skylark aspects should always output to bin directory.
-- MOS_MIGRATED_REVID=120539216
Diffstat (limited to 'src/main/java/com')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java
index bb12bb45ba..e83f409bc5 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java
@@ -567,13 +567,23 @@ public final class SkylarkRuleContext {
}
}
+ private boolean isForAspect() {
+ return ruleAttributesCollection != null;
+ }
+
@SkylarkCallable(
doc =
"Creates a file object with the given filename, in the current package. "
+ DOC_NEW_FILE_TAIL
)
public Artifact newFile(String filename) {
- return newFile(ruleContext.getBinOrGenfilesDirectory(), filename);
+ return newFile(newFileRoot(), filename);
+ }
+
+ private Root newFileRoot() {
+ return isForAspect()
+ ? getConfiguration().getBinDirectory()
+ : ruleContext.getBinOrGenfilesDirectory();
}
// Kept for compatibility with old code.
@@ -588,8 +598,7 @@ public final class SkylarkRuleContext {
public Artifact newFile(Artifact baseArtifact, String newBaseName) {
PathFragment original = baseArtifact.getRootRelativePath();
PathFragment fragment = original.replaceName(newBaseName);
- Root root = ruleContext.getBinOrGenfilesDirectory();
- return ruleContext.getDerivedArtifact(fragment, root);
+ return ruleContext.getDerivedArtifact(fragment, newFileRoot());
}
// Kept for compatibility with old code.