aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java22
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/apple/BUILD1
3 files changed, 21 insertions, 12 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 c57f48e732..81839d028d 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
@@ -461,23 +461,21 @@ public final class SkylarkRuleContext {
}
@SkylarkCallable(name = "fragments", structField = true,
- doc =
- "Allows access to configuration fragments in target configuration. "
- + "Possible fields are <code>cpp</code>, "
- + "<code>java</code> and <code>jvm</code>. "
- + "However, rules have to declare their required fragments in order to access them "
- + "(see <a href=\"../rules.html#fragments\">here</a>).")
+ doc = "Allows access to configuration fragments in target configuration. "
+ + "Possible fields are <code>apple</code>, <code>cpp</code>, "
+ + "<code>java</code> and <code>jvm</code>. "
+ + "However, rules have to declare their required fragments in order to access them "
+ + "(see <a href=\"../rules.html#fragments\">here</a>).")
public FragmentCollection getFragments() {
return fragments;
}
@SkylarkCallable(name = "host_fragments", structField = true,
- doc =
- "Allows access to configuration fragments in host configuration. "
- + "Possible fields are <code>cpp</code>, "
- + "<code>java</code> and <code>jvm</code>. "
- + "However, rules have to declare their required fragments in order to access them "
- + "(see <a href=\"../rules.html#fragments\">here</a>).")
+ doc = "Allows access to configuration fragments in host configuration. "
+ + "Possible fields are <code>apple</code>, <code>cpp</code>, "
+ + "<code>java</code> and <code>jvm</code>. "
+ + "However, rules have to declare their required fragments in order to access them "
+ + "(see <a href=\"../rules.html#fragments\">here</a>).")
public FragmentCollection getHostFragments() {
return hostFragments;
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java
index c7e56ea4da..6a7a9d8ac4 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java
@@ -27,6 +27,8 @@ import com.google.devtools.build.lib.analysis.config.InvalidConfigurationExcepti
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.rules.apple.AppleCommandLineOptions.AppleBitcodeMode;
+import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
+import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
import com.google.devtools.build.lib.util.Preconditions;
import java.util.Map;
@@ -36,6 +38,7 @@ import javax.annotation.Nullable;
/**
* A configuration containing flags required for Apple platforms and tools.
*/
+@SkylarkModule(name = "apple", doc = "A configuration fragment for Apple platforms")
@Immutable
public class AppleConfiguration extends BuildConfiguration.Fragment {
public static final String XCODE_VERSION_ENV_NAME = "XCODE_VERSION_OVERRIDE";
@@ -107,6 +110,13 @@ public class AppleConfiguration extends BuildConfiguration.Fragment {
* apple host system. These environment variables are needed by the apple toolchain. Keys are
* variable names and values are their corresponding values.
*/
+ @SkylarkCallable(
+ name = "apple_host_system_env",
+ doc =
+ "Returns a map of environment variables that should be propagated for actions that "
+ + "build on an apple host system. These environment variables are needed by the apple "
+ + "toolchain. Keys are variable names and values are their corresponding values."
+ )
public Map<String, String> getAppleHostSystemEnv() {
Optional<DottedVersion> xcodeVersion = getXcodeVersion();
ImmutableMap.Builder<String, String> builder = ImmutableMap.builder();
diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/BUILD b/src/main/java/com/google/devtools/build/lib/rules/apple/BUILD
index 9317385be0..f3474266c8 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/apple/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/rules/apple/BUILD
@@ -17,6 +17,7 @@ java_library(
"//src/main/java/com/google/devtools/build/lib:packages-internal",
"//src/main/java/com/google/devtools/build/lib:preconditions",
"//src/main/java/com/google/devtools/build/lib:shell",
+ "//src/main/java/com/google/devtools/build/lib:skylarkinterface",
"//src/main/java/com/google/devtools/build/lib:syntax",
"//src/main/java/com/google/devtools/build/lib:vfs",
"//src/main/java/com/google/devtools/build/lib/actions",