aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com
diff options
context:
space:
mode:
authorGravatar Laurent Le Brun <laurentlb@google.com>2015-04-02 19:31:31 +0000
committerGravatar Kristina Chodorow <kchodorow@google.com>2015-04-03 20:36:40 +0000
commit6c8b0b6785d9907be81b300e1bde45f086d67b39 (patch)
treead81fb04c0b96eedf1abbaf6b01fb740c9f34af4 /src/main/java/com
parenteedbb0369e584794e49b5fd1118acf718128d105 (diff)
Skylark: Implicit outputs can refer to labels.
Fixes #91. -- MOS_MIGRATED_REVID=90185784
Diffstat (limited to 'src/main/java/com')
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/ImplicitOutputsFunction.java5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/packages/ImplicitOutputsFunction.java b/src/main/java/com/google/devtools/build/lib/packages/ImplicitOutputsFunction.java
index 94e9f63715..bd54ca0bc6 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/ImplicitOutputsFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/ImplicitOutputsFunction.java
@@ -291,6 +291,11 @@ public abstract class ImplicitOutputsFunction {
return singleton(rule.get(attrName, Type.STRING));
} else if (Type.STRING_LIST == attrType) {
return Sets.newLinkedHashSet(rule.get(attrName, Type.STRING_LIST));
+ } else if (Type.LABEL == attrType) {
+ // Labels are most often used to change the extension,
+ // e.g. %.foo -> %.java, so we return the basename w/o extension.
+ Label label = rule.get(attrName, Type.LABEL);
+ return singleton(FileSystemUtils.removeExtension(label.getName()));
} else if (Type.LABEL_LIST == attrType) {
// Labels are most often used to change the extension,
// e.g. %.foo -> %.java, so we return the basename w/o extension.