aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools')
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AarImport.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinaryMobileInstall.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java17
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidNativeLibsInfo.java69
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/NativeLibsZipsInfo.java55
9 files changed, 91 insertions, 78 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java
index b276224448..4d58a9b706 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java
@@ -61,6 +61,7 @@ import com.google.devtools.build.lib.rules.android.AndroidInstrumentationInfo;
import com.google.devtools.build.lib.rules.android.AndroidInstrumentationTestRule;
import com.google.devtools.build.lib.rules.android.AndroidLibraryBaseRule;
import com.google.devtools.build.lib.rules.android.AndroidLocalTestBaseRule;
+import com.google.devtools.build.lib.rules.android.AndroidNativeLibsInfo;
import com.google.devtools.build.lib.rules.android.AndroidNeverlinkAspect;
import com.google.devtools.build.lib.rules.android.AndroidResourcesInfo;
import com.google.devtools.build.lib.rules.android.AndroidRuleClasses;
@@ -68,7 +69,6 @@ import com.google.devtools.build.lib.rules.android.AndroidRuleClasses.AndroidToo
import com.google.devtools.build.lib.rules.android.AndroidSkylarkCommon;
import com.google.devtools.build.lib.rules.android.ApkInfo;
import com.google.devtools.build.lib.rules.android.DexArchiveAspect;
-import com.google.devtools.build.lib.rules.android.NativeLibsZipsInfo;
import com.google.devtools.build.lib.rules.config.ConfigRules;
import com.google.devtools.build.lib.rules.core.CoreRules;
import com.google.devtools.build.lib.rules.cpp.proto.CcProtoAspect;
@@ -223,7 +223,7 @@ public class BazelRuleClassProvider {
builder.addSkylarkAccessibleTopLevels(
AndroidResourcesInfo.PROVIDER.getName(), AndroidResourcesInfo.PROVIDER);
builder.addSkylarkAccessibleTopLevels(
- NativeLibsZipsInfo.PROVIDER.getName(), NativeLibsZipsInfo.PROVIDER);
+ AndroidNativeLibsInfo.PROVIDER.getName(), AndroidNativeLibsInfo.PROVIDER);
try {
builder.addWorkspaceFilePrefix(
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AarImport.java b/src/main/java/com/google/devtools/build/lib/rules/android/AarImport.java
index c2b987b4a7..7be723d608 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AarImport.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AarImport.java
@@ -163,8 +163,8 @@ public class AarImport implements RuleConfiguredTargetFactory {
.addProvider(RunfilesProvider.class, RunfilesProvider.EMPTY)
.addNativeDeclaredProvider(resourceApk.toResourceInfo(ruleContext.getLabel()))
.addNativeDeclaredProvider(
- new NativeLibsZipsInfo(
- AndroidCommon.collectTransitiveNativeLibsZips(ruleContext).add(nativeLibs).build()))
+ new AndroidNativeLibsInfo(
+ AndroidCommon.collectTransitiveNativeLibs(ruleContext).add(nativeLibs).build()))
.addProvider(
JavaRuntimeJarProvider.class, new JavaRuntimeJarProvider(ImmutableList.of(mergedJar)))
.addNativeDeclaredProvider(javaInfo)
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java
index 6026c40bb1..dd47b4484d 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java
@@ -386,8 +386,8 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory {
derivedJarFunction,
proguardOutputMap);
- NestedSet<Artifact> nativeLibsZips =
- AndroidCommon.collectTransitiveNativeLibsZips(ruleContext).build();
+ NestedSet<Artifact> nativeLibsAar =
+ AndroidCommon.collectTransitiveNativeLibs(ruleContext).build();
DexPostprocessingOutput dexPostprocessingOutput =
androidSemantics.postprocessClassesDexZip(
@@ -461,7 +461,7 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory {
.setClassesDex(finalClassesDex)
.addInputZip(resourceApk.getArtifact())
.setJavaResourceZip(dexingOutput.javaResourceJar, resourceExtractor)
- .addInputZips(nativeLibsZips)
+ .addInputZips(nativeLibsAar)
.setNativeLibs(nativeLibs)
.setUnsignedApk(unsignedApk)
.setSignedApk(zipAlignedApk)
@@ -559,7 +559,7 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory {
resourceApk,
mobileInstallResourceApks,
resourceExtractor,
- nativeLibsZips,
+ nativeLibsAar,
signingKey,
additionalMergedManifests,
applicationManifest);
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinaryMobileInstall.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinaryMobileInstall.java
index f9429fb504..4ff42e3259 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinaryMobileInstall.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinaryMobileInstall.java
@@ -100,7 +100,7 @@ public final class AndroidBinaryMobileInstall {
ResourceApk resourceApk,
MobileInstallResourceApks mobileInstallResourceApks,
FilesToRunProvider resourceExtractor,
- NestedSet<Artifact> nativeLibsZips,
+ NestedSet<Artifact> nativeLibsAar,
Artifact signingKey,
ImmutableList<Artifact> additionalMergedManifests,
ApplicationManifest applicationManifest)
@@ -147,7 +147,7 @@ public final class AndroidBinaryMobileInstall {
.setClassesDex(stubDex)
.addInputZip(mobileInstallResourceApks.incrementalResourceApk.getArtifact())
.setJavaResourceZip(dexingOutput.javaResourceJar, resourceExtractor)
- .addInputZips(nativeLibsZips)
+ .addInputZips(nativeLibsAar)
.setJavaResourceFile(stubData)
.setSignedApk(incrementalApk)
.setSigningKey(signingKey);
@@ -259,7 +259,7 @@ public final class AndroidBinaryMobileInstall {
ApkActionsBuilder.create("split main apk")
.setClassesDex(splitStubDex)
.addInputZip(splitMainApkResources)
- .addInputZips(nativeLibsZips)
+ .addInputZips(nativeLibsAar)
.setSignedApk(splitMainApk)
.setSigningKey(signingKey)
.registerActions(ruleContext);
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java
index d67430ce0f..7d2bb6a7c7 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java
@@ -364,15 +364,14 @@ public class AndroidCommon {
throw new IllegalArgumentException(String.format("%s was not found in %s", needle, haystack));
}
- public static NestedSetBuilder<Artifact> collectTransitiveNativeLibsZips(
- RuleContext ruleContext) {
- NestedSetBuilder<Artifact> transitiveAarNativeLibs = NestedSetBuilder.naiveLinkOrder();
- Iterable<NativeLibsZipsInfo> infos =
- getTransitivePrerequisites(ruleContext, Mode.TARGET, NativeLibsZipsInfo.PROVIDER);
- for (NativeLibsZipsInfo nativeLibsZipsInfo : infos) {
- transitiveAarNativeLibs.addTransitive(nativeLibsZipsInfo.getAarNativeLibs());
- }
- return transitiveAarNativeLibs;
+ public static NestedSetBuilder<Artifact> collectTransitiveNativeLibs(RuleContext ruleContext) {
+ NestedSetBuilder<Artifact> transitiveNativeLibs = NestedSetBuilder.naiveLinkOrder();
+ Iterable<AndroidNativeLibsInfo> infos =
+ getTransitivePrerequisites(ruleContext, Mode.TARGET, AndroidNativeLibsInfo.PROVIDER);
+ for (AndroidNativeLibsInfo nativeLibsZipsInfo : infos) {
+ transitiveNativeLibs.addTransitive(nativeLibsZipsInfo.getNativeLibs());
+ }
+ return transitiveNativeLibs;
}
static boolean getExportsManifest(RuleContext ruleContext) {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java
index 3617299db4..6173e3c890 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java
@@ -258,8 +258,8 @@ public abstract class AndroidLibrary implements RuleConfiguredTargetFactory {
builder
.addNativeDeclaredProvider(
- new NativeLibsZipsInfo(
- AndroidCommon.collectTransitiveNativeLibsZips(ruleContext).build()))
+ new AndroidNativeLibsInfo(
+ AndroidCommon.collectTransitiveNativeLibs(ruleContext).build()))
.add(
JavaSourceInfoProvider.class,
JavaSourceInfoProvider.fromJavaTargetAttributes(javaTargetAttributes, javaSemantics))
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
new file mode 100644
index 0000000000..5a07796e7b
--- /dev/null
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidNativeLibsInfo.java
@@ -0,0 +1,69 @@
+// Copyright 2016 The Bazel Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// 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.NativeInfo;
+import com.google.devtools.build.lib.packages.NativeProvider;
+import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
+import com.google.devtools.build.lib.syntax.FunctionSignature;
+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
+ * APK.
+ */
+@SkylarkModule(name = "AndroidNativeLibsInfo", doc = "", documented = false)
+@Immutable
+public final class AndroidNativeLibsInfo extends NativeInfo {
+
+ 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, Location loc) {
+ return new AndroidNativeLibsInfo(
+ /*nativeLibs=*/ ((SkylarkNestedSet) args[0]).getSet(Artifact.class));
+ }
+ };
+
+ private final NestedSet<Artifact> nativeLibs;
+
+ public AndroidNativeLibsInfo(NestedSet<Artifact> nativeLibs) {
+ super(PROVIDER);
+ this.nativeLibs = nativeLibs;
+ }
+
+ /** Returns the native libraries zip produced by the rule. */
+ public NestedSet<Artifact> getNativeLibs() {
+ return nativeLibs;
+ }
+}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java
index cfec36c636..d53b811f21 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java
@@ -570,7 +570,7 @@ public final class AndroidRuleClasses {
.exec()
.value(env.getToolsLabel(AndroidRuleClasses.MANIFEST_MERGE_TOOL_LABEL)))
.advertiseSkylarkProvider(AndroidResourcesInfo.PROVIDER.id())
- .advertiseSkylarkProvider(NativeLibsZipsInfo.PROVIDER.id())
+ .advertiseSkylarkProvider(AndroidNativeLibsInfo.PROVIDER.id())
.build();
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/NativeLibsZipsInfo.java b/src/main/java/com/google/devtools/build/lib/rules/android/NativeLibsZipsInfo.java
deleted file mode 100644
index 2b802adebd..0000000000
--- a/src/main/java/com/google/devtools/build/lib/rules/android/NativeLibsZipsInfo.java
+++ /dev/null
@@ -1,55 +0,0 @@
-// Copyright 2016 The Bazel Authors. All rights reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-package com.google.devtools.build.lib.rules.android;
-
-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.packages.NativeInfo;
-import com.google.devtools.build.lib.packages.NativeProvider;
-import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
-import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
-import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
-
-/**
- * Provider of transitively available ZIPs of native libs that should be directly copied into the
- * APK.
- */
-@SkylarkModule(
- name = "AndroidNativeLibsZipsInfo",
- doc = "Native Libraries zips provided by a rule",
- category = SkylarkModuleCategory.PROVIDER
-)
-@Immutable
-public final class NativeLibsZipsInfo extends NativeInfo {
-
- private static final String SKYLARK_NAME = "AndroidNativeLibsZipsInfo";
- public static final NativeProvider<NativeLibsZipsInfo> PROVIDER =
- new NativeProvider<NativeLibsZipsInfo>(NativeLibsZipsInfo.class, SKYLARK_NAME) {};
- private final NestedSet<Artifact> aarNativeLibs;
-
- public NativeLibsZipsInfo(NestedSet<Artifact> aarNativeLibs) {
- super(PROVIDER);
- this.aarNativeLibs = aarNativeLibs;
- }
-
- @SkylarkCallable(
- name = "native_libs_zips",
- doc = "Returns the native libraries zip produced by the rule.",
- structField = true
- )
- public NestedSet<Artifact> getAarNativeLibs() {
- return aarNativeLibs;
- }
-}