aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/android/AndroidNativeLibsInfo.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/android/AndroidNativeLibsInfo.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidNativeLibsInfo.java47
1 files changed, 20 insertions, 27 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidNativeLibsInfo.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidNativeLibsInfo.java
index d73d302dcc..aa189a47d2 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidNativeLibsInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidNativeLibsInfo.java
@@ -13,18 +13,14 @@
// limitations under the License.
package com.google.devtools.build.lib.rules.android;
-import com.google.common.collect.ImmutableList;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
-import com.google.devtools.build.lib.events.Location;
+import com.google.devtools.build.lib.packages.BuiltinProvider;
import com.google.devtools.build.lib.packages.NativeInfo;
-import com.google.devtools.build.lib.packages.NativeProvider;
import com.google.devtools.build.lib.skylarkbuildapi.android.AndroidNativeLibsInfoApi;
-import com.google.devtools.build.lib.syntax.Environment;
-import com.google.devtools.build.lib.syntax.FunctionSignature;
+import com.google.devtools.build.lib.syntax.EvalException;
import com.google.devtools.build.lib.syntax.SkylarkNestedSet;
-import com.google.devtools.build.lib.syntax.SkylarkType;
/**
* Provider of transitively available ZIPs of native libs that should be directly copied into the
@@ -35,27 +31,9 @@ public final class AndroidNativeLibsInfo extends NativeInfo
implements AndroidNativeLibsInfoApi<Artifact> {
private static final String SKYLARK_NAME = "AndroidNativeLibsInfo";
- private static final FunctionSignature.WithValues<Object, SkylarkType> SIGNATURE =
- FunctionSignature.WithValues.create(
- FunctionSignature.of(
- /*numMandatoryPositionals=*/ 0,
- /*numOptionalPositionals=*/ 0,
- /*numMandatoryNamedOnly=*/ 1,
- /*starArg=*/ false,
- /*kwArg=*/ false,
- "native_libs"),
- /*defaultValues=*/ null,
- /*types=*/ ImmutableList.of(SkylarkType.of(SkylarkNestedSet.class)));
- public static final NativeProvider<AndroidNativeLibsInfo> PROVIDER =
- new NativeProvider<AndroidNativeLibsInfo>(
- AndroidNativeLibsInfo.class, SKYLARK_NAME, SIGNATURE) {
- @Override
- protected AndroidNativeLibsInfo createInstanceFromSkylark(
- Object[] args, Environment env, Location loc) {
- return new AndroidNativeLibsInfo(
- /*nativeLibs=*/ ((SkylarkNestedSet) args[0]).getSet(Artifact.class));
- }
- };
+
+ public static final AndroidNativeLibsInfoProvider PROVIDER =
+ new AndroidNativeLibsInfoProvider();
private final NestedSet<Artifact> nativeLibs;
@@ -68,4 +46,19 @@ public final class AndroidNativeLibsInfo extends NativeInfo
public NestedSet<Artifact> getNativeLibs() {
return nativeLibs;
}
+
+ /** Provider for {@link AndroidNativeLibsInfo}. */
+ public static class AndroidNativeLibsInfoProvider extends BuiltinProvider<AndroidNativeLibsInfo>
+ implements AndroidNativeLibsInfoApiProvider {
+
+ private AndroidNativeLibsInfoProvider() {
+ super(SKYLARK_NAME, AndroidNativeLibsInfo.class);
+ }
+
+ @Override
+ public AndroidNativeLibsInfo createInfo(SkylarkNestedSet nativeLibs)
+ throws EvalException {
+ return new AndroidNativeLibsInfo(nativeLibs.getSet(Artifact.class));
+ }
+ }
}