diff options
author | 2015-06-22 21:17:08 +0000 | |
---|---|---|
committer | 2015-06-23 09:03:13 +0000 | |
commit | 171b52c20e50ba6773f05fed17b1a75d18292a89 (patch) | |
tree | 861562f5411da82c61e545afac2bb5017fb8224d /src/main/java/com/google/devtools | |
parent | 27d218432dc8d437b8b431e6bbdee05d145b2b20 (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.java | 31 |
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"); } } |