diff options
author | 2018-06-11 12:44:06 -0700 | |
---|---|---|
committer | 2018-06-11 12:45:43 -0700 | |
commit | abeb8515ced94f94e80a0196bd5e8330fefba938 (patch) | |
tree | 3b40eb0c5e83aceb74186343be01af86bc70e8d4 /src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/ApkInfoApi.java | |
parent | d1faf43493a6d11deb5bd88373ceb5fab04c8109 (diff) |
Migrate android providers to use BuiltinProvider instead of NativeProvider
RELNOTES: None.
PiperOrigin-RevId: 200096226
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/ApkInfoApi.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/ApkInfoApi.java | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/ApkInfoApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/ApkInfoApi.java index b279e87170..b3cd96e619 100644 --- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/ApkInfoApi.java +++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/ApkInfoApi.java @@ -13,11 +13,16 @@ // limitations under the License. package com.google.devtools.build.lib.skylarkbuildapi.android; +import com.google.devtools.build.lib.events.Location; import com.google.devtools.build.lib.skylarkbuildapi.FileApi; +import com.google.devtools.build.lib.skylarkbuildapi.ProviderApi; import com.google.devtools.build.lib.skylarkbuildapi.StructApi; +import com.google.devtools.build.lib.skylarkinterface.Param; 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.build.lib.syntax.EvalException; +import com.google.devtools.build.lib.syntax.SkylarkDict; /** A provider for targets that produce an apk file. */ @SkylarkModule( @@ -25,10 +30,30 @@ import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory; doc = "APKs provided by a rule", category = SkylarkModuleCategory.PROVIDER) public interface ApkInfoApi<FileT extends FileApi> extends StructApi { + + /** + * Name of this info object. + */ + public static String NAME = "ApkInfo"; + /** Returns the APK file built in the transitive closure. */ @SkylarkCallable( name = "signed_apk", doc = "Returns a signed APK built from the target.", structField = true) FileT getApk(); + + /** Provider for {@link ApkInfoApi}. */ + @SkylarkModule(name = "Provider", doc = "", documented = false) + public interface ApkInfoApiProvider extends ProviderApi { + + @SkylarkCallable( + name = "ApkInfo", + // This is left undocumented as it throws a "not-implemented in Skylark" error when invoked. + documented = false, + extraKeywords = @Param(name = "kwargs"), + useLocation = true, + selfCall = true) + public ApkInfoApi<?> createInfo(SkylarkDict<?, ?> kwargs, Location loc) throws EvalException; + } } |