diff options
author | 2015-04-02 19:31:31 +0000 | |
---|---|---|
committer | 2015-04-03 20:36:40 +0000 | |
commit | 6c8b0b6785d9907be81b300e1bde45f086d67b39 (patch) | |
tree | ad81fb04c0b96eedf1abbaf6b01fb740c9f34af4 /src/main/java/com | |
parent | eedbb0369e584794e49b5fd1118acf718128d105 (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.java | 5 |
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. |