Expose android configuration to skylark (android_sdk and apk_signing_method)
PiperOrigin-RevId: 165596223
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/FragmentCollection.java b/src/main/java/com/google/devtools/build/lib/analysis/config/FragmentCollection.java
index fb1f4ad..0853001 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/FragmentCollection.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/FragmentCollection.java
@@ -34,7 +34,7 @@
doc = "Possible fields are "
+ "<a href=\"apple.html\">apple</a>, <a href=\"cpp.html\">cpp</a>, "
+ "<a href=\"java.html\">java</a>, <a href=\"jvm.html\">jvm</a> and "
- + "<a href=\"objc.html\">objc</a>. "
+ + "<a href=\"objc.html\">objc</a>, <a href=\"android.html\">android</a>. "
+ "Access a specific fragment by its field name ex:</p><code>ctx.fragments.apple</code></p>"
+ "Note that rules have to declare their required fragments in order to access them "
+ "(see <a href=\"../rules.md#fragments\">here</a>).")
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java
index 2b4291e..9d24812 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java
@@ -39,6 +39,9 @@
import com.google.devtools.build.lib.rules.cpp.CppConfiguration.DynamicMode;
import com.google.devtools.build.lib.rules.cpp.CppOptions.DynamicModeConverter;
import com.google.devtools.build.lib.rules.cpp.CppOptions.LibcTopLabelConverter;
+import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
+import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
+import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
import com.google.devtools.common.options.Converter;
import com.google.devtools.common.options.Converters;
import com.google.devtools.common.options.EnumConverter;
@@ -51,9 +54,12 @@
import java.util.Set;
import javax.annotation.Nullable;
-/**
- * Configuration fragment for Android rules.
- */
+/** Configuration fragment for Android rules. */
+@SkylarkModule(
+ name = "android",
+ doc = "A configuration fragment for Android.",
+ category = SkylarkModuleCategory.CONFIGURATION_FRAGMENT
+)
@Immutable
public class AndroidConfiguration extends BuildConfiguration.Fragment {
@@ -837,6 +843,7 @@
return cpu;
}
+ @SkylarkCallable(name = "sdk", structField = true, doc = "Android SDK")
public Label getSdk() {
return sdk;
}