diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib')
-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(); + } } |