diff options
author | 2016-02-19 19:39:26 +0000 | |
---|---|---|
committer | 2016-02-22 16:06:08 +0000 | |
commit | b14c24b10497904bcdc3884fd102f70ddb20c591 (patch) | |
tree | 4e37717bd25bd62a84eeb46cb08950b5ee59c8ad /src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java | |
parent | a6e448253c289f3d5a353f038a5ea47227515a66 (diff) |
Expose ``build_file_path`` to Skylark rules.
Also adds neccessary support to Skylark implementation of IDE info
aspect.
--
MOS_MIGRATED_REVID=115084383
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java index 7fe48a03bd..e6b3a513fb 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java +++ b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java @@ -43,6 +43,7 @@ import com.google.devtools.build.lib.packages.BuildType; import com.google.devtools.build.lib.packages.ImplicitOutputsFunction; import com.google.devtools.build.lib.packages.ImplicitOutputsFunction.SkylarkImplicitOutputsFunction; import com.google.devtools.build.lib.packages.OutputFile; +import com.google.devtools.build.lib.packages.Package; import com.google.devtools.build.lib.packages.RawAttributeMapper; import com.google.devtools.build.lib.shell.ShellUtils; import com.google.devtools.build.lib.shell.ShellUtils.TokenizationException; @@ -400,7 +401,6 @@ public final class SkylarkRuleContext { return ruleClassName; } - public ImmutableMap<Artifact, FilesToRunProvider> getExecutableRunfilesMap() { return executableRunfilesMap; } @@ -661,4 +661,13 @@ public final class SkylarkRuleContext { public Artifact getVolatileWorkspaceStatus() { return ruleContext.getAnalysisEnvironment().getVolatileWorkspaceStatusArtifact(); } + + @SkylarkCallable(name = "build_file_path", structField = true, documented = true, + doc = "Returns path to the BUILD file for this rule, relative to the source root" + ) + public String getBuildFileRelativePath() { + Package pkg = ruleContext.getRule().getPackage(); + Root root = Root.asSourceRoot(pkg.getSourceRoot()); + return pkg.getBuildFile().getPath().relativeTo(root.getPath()).getPathString(); + } } |