aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib
diff options
context:
space:
mode:
authorGravatar cparsons <cparsons@google.com>2018-06-26 10:25:25 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-06-26 10:26:53 -0700
commit6ecacd585ca406c1681b4b6cbd71222b52c30fcc (patch)
treee5ed84f70d0a6697f5b3692610e3017e70439a30 /src/main/java/com/google/devtools/build/lib
parent85d3f614c9e8e8080ed121fbac979ceb381e031c (diff)
Document LateBoundDefault
RELNOTES: None. PiperOrigin-RevId: 202150316
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skylarkbuildapi/LateBoundDefaultApi.java14
-rw-r--r--src/main/java/com/google/devtools/build/lib/skylarkbuildapi/SkylarkBuildApiGlobals.java9
2 files changed, 16 insertions, 7 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/LateBoundDefaultApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/LateBoundDefaultApi.java
index 802d09f6dd..b4707cb35d 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/LateBoundDefaultApi.java
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/LateBoundDefaultApi.java
@@ -20,10 +20,12 @@ import com.google.devtools.build.lib.skylarkinterface.SkylarkValue;
/**
* The interface for late bound defaults in Skylark.
*/
-// TODO(cparsons): Document.
@SkylarkModule(name = "LateBoundDefault",
- documented = false,
- doc = "")
-public interface LateBoundDefaultApi extends SkylarkValue {
- // TODO(cparsons): Migrate this API from the Bazel-specific implementation.
-}
+ doc = "Represents a late-bound default attribute value of type 'Label'. "
+ + "The value of a LateBoundDefault is only resolvable in the context of a rule "
+ + "implementation function, and depends on the current build configuration. For example, a "
+ + "LateBoundDefault might represent the Label of the java toolchain in the current build "
+ + "configuration. "
+ + "<p>See <a href=\"globals.html#configuration_field\">configuration_field</a> for "
+ + "example usage.")
+public interface LateBoundDefaultApi extends SkylarkValue {}
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/SkylarkBuildApiGlobals.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/SkylarkBuildApiGlobals.java
index fd24b7ff1e..23c345fef5 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/SkylarkBuildApiGlobals.java
+++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/SkylarkBuildApiGlobals.java
@@ -33,7 +33,14 @@ public interface SkylarkBuildApiGlobals {
doc = "References a late-bound default value for an attribute of type "
+ "<a href=\"attr.html#label\">label</a>. A value is 'late-bound' if it requires "
+ "the configuration to be built before determining the value. Any attribute using this "
- + "as a value must <a href=\"../rules.html#private-attributes\">be private</a>.",
+ + "as a value must <a href=\"../rules.html#private-attributes\">be private</a>. "
+ + "<p>Example usage: "
+ + "<p>Defining a rule attribute: <br><pre class=language-python>"
+ + "'foo_': attr.label(default=configuration_field(fragment='java', name='toolchain'))</pre>"
+ + "<p>Accessing in rule implementation: <br><pre class=language-python>"
+ + " def _rule_impl(ctx):\n"
+ + " foo_info = ctx.attr._foo\n"
+ + " ...</pre>",
parameters = {
@Param(
name = "fragment",