aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/packages
diff options
context:
space:
mode:
authorGravatar Lukacs Berki <lberki@google.com>2015-08-24 13:58:58 +0000
committerGravatar Laszlo Csomor <laszlocsomor@google.com>2015-08-25 07:39:46 +0000
commit29c43874c05ec6a8365661c428b3a0639c8863fb (patch)
tree6dea6002b90b848acb0e82f49fcc85412b0c6c73 /src/main/java/com/google/devtools/build/lib/packages
parent81fb6e7bb8a5b9d818d4974e24a79628020c4dd0 (diff)
Do not consider //external: a repository-local reference.
Fixes #360. -- MOS_MIGRATED_REVID=101360551
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/packages')
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/AbstractAttributeMapper.java6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/packages/AbstractAttributeMapper.java b/src/main/java/com/google/devtools/build/lib/packages/AbstractAttributeMapper.java
index 9365e9a7f3..931bcf9d96 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/AbstractAttributeMapper.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/AbstractAttributeMapper.java
@@ -30,6 +30,7 @@ import javax.annotation.Nullable;
public abstract class AbstractAttributeMapper implements AttributeMap {
private static final PathFragment VISIBILITY = new PathFragment("visibility");
+ private static final PathFragment EXTERNAL = new PathFragment("external");
private final Package pkg;
private final RuleClass ruleClass;
@@ -164,8 +165,9 @@ public abstract class AbstractAttributeMapper implements AttributeMap {
// generally tools, which go to the main repository.
absoluteLabel = label;
} else if (label.getPackageIdentifier().getRepository().isDefault()
- && VISIBILITY.equals(label.getPackageIdentifier().getPackageFragment())) {
- // //visibility: labels must also be special-cased :(
+ && (VISIBILITY.equals(label.getPackageIdentifier().getPackageFragment())
+ || EXTERNAL.equals(label.getPackageIdentifier().getPackageFragment()))) {
+ // //visibility: and //external: labels must also be special-cased :(
absoluteLabel = label;
} else {
absoluteLabel = ruleLabel.resolveRepositoryRelative(label);