aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools
diff options
context:
space:
mode:
authorGravatar Laurent Le Brun <laurentlb@google.com>2015-06-22 21:17:08 +0000
committerGravatar Laszlo Csomor <laszlocsomor@google.com>2015-06-23 09:03:13 +0000
commit171b52c20e50ba6773f05fed17b1a75d18292a89 (patch)
tree861562f5411da82c61e545afac2bb5017fb8224d /src/main/java/com/google/devtools
parent27d218432dc8d437b8b431e6bbdee05d145b2b20 (diff)
Skylark: Expose runfiles provider to targets
-- MOS_MIGRATED_REVID=96606040
Diffstat (limited to 'src/main/java/com/google/devtools')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/AbstractConfiguredTarget.java31
1 files changed, 22 insertions, 9 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/AbstractConfiguredTarget.java b/src/main/java/com/google/devtools/build/lib/analysis/AbstractConfiguredTarget.java
index 0650a1223d..3bfdd27736 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/AbstractConfiguredTarget.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/AbstractConfiguredTarget.java
@@ -38,6 +38,12 @@ public abstract class AbstractConfiguredTarget
private final NestedSet<PackageSpecification> visibility;
+ // Accessors for Skylark
+ private static final String DATA_RUNFILES_FIELD = "data_runfiles";
+ private static final String DEFAULT_RUNFILES_FIELD = "default_runfiles";
+ private static final String LABEL_FIELD = "label";
+ private static final String FILES_FIELD = "files";
+
AbstractConfiguredTarget(Target target,
BuildConfiguration configuration) {
this.target = target;
@@ -88,15 +94,22 @@ public abstract class AbstractConfiguredTarget
@Override
public Object getValue(String name) {
- if (name.equals("label")) {
- return getLabel();
- } else if (name.equals("files")) {
- // A shortcut for files to build in Skylark. FileConfiguredTarget and RunleConfiguredTarget
- // always has FileProvider and Error- and PackageGroupConfiguredTarget-s shouldn't be
- // accessible in Skylark.
- return SkylarkNestedSet.of(Artifact.class, getProvider(FileProvider.class).getFilesToBuild());
+ switch (name) {
+ case LABEL_FIELD:
+ return getLabel();
+ case FILES_FIELD:
+ // A shortcut for files to build in Skylark. FileConfiguredTarget and RunleConfiguredTarget
+ // always has FileProvider and Error- and PackageGroupConfiguredTarget-s shouldn't be
+ // accessible in Skylark.
+ return SkylarkNestedSet.of(
+ Artifact.class, getProvider(FileProvider.class).getFilesToBuild());
+ case DEFAULT_RUNFILES_FIELD:
+ return RunfilesProvider.DEFAULT_RUNFILES.apply(this);
+ case DATA_RUNFILES_FIELD:
+ return RunfilesProvider.DATA_RUNFILES.apply(this);
+ default:
+ return get(name);
}
- return get(name);
}
@Override
@@ -106,6 +119,6 @@ public abstract class AbstractConfiguredTarget
@Override
public ImmutableCollection<String> getKeys() {
- return ImmutableList.of("label", "files");
+ return ImmutableList.of("data_runfiles", "default_runfiles", "label", "files");
}
}