aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google
diff options
context:
space:
mode:
authorGravatar kmb <kmb@google.com>2018-04-26 15:20:22 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-04-26 15:22:16 -0700
commit805f54c28836d6eadfbbf3f0815816cb5ecaff82 (patch)
tree3845985599098a565afdea4fe2626bed48b23969 /src/main/java/com/google
parent257ddab3bc80967bc88b52e5ea7b8b58d3d100a4 (diff)
Make mobile-install shard for extra .dex file produced with --experimental_desugar_java8_libs
PiperOrigin-RevId: 194462758
Diffstat (limited to 'src/main/java/com/google')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinaryMobileInstall.java15
2 files changed, 13 insertions, 8 deletions
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 9c91ece4a3..650027ffd8 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
@@ -431,6 +431,7 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory {
ruleContext.getExecutablePrerequisite("$resource_extractor", Mode.HOST);
Artifact finalClassesDex;
+ ImmutableList<Artifact> finalShardDexZips = dexingOutput.shardDexZips;
if (AndroidCommon.getAndroidConfig(ruleContext).desugarJava8Libs()
&& dexPostprocessingOutput.classesDexZip().getFilename().endsWith(".zip")) {
Artifact java8LegacyDex;
@@ -478,6 +479,8 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory {
.addExecPath("--output_zip", finalClassesDex)
.build())
.build(ruleContext));
+ finalShardDexZips =
+ ImmutableList.<Artifact>builder().addAll(finalShardDexZips).add(java8LegacyDex).build();
} else {
finalClassesDex = dexPostprocessingOutput.classesDexZip();
}
@@ -577,7 +580,8 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory {
AndroidBinaryMobileInstall.addMobileInstall(
ruleContext,
builder,
- dexingOutput,
+ dexingOutput.javaResourceJar,
+ finalShardDexZips,
javaSemantics,
nativeLibs,
resourceApk,
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 3d6ac89a1e..64d0cd7bf2 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
@@ -123,7 +123,8 @@ public final class AndroidBinaryMobileInstall {
static void addMobileInstall(
RuleContext ruleContext,
RuleConfiguredTargetBuilder ruleConfiguredTargetBuilder,
- AndroidBinary.DexingOutput dexingOutput,
+ Artifact javaResourceJar,
+ ImmutableList<Artifact> shardDexZips,
JavaSemantics javaSemantics,
NativeLibs nativeLibs,
ResourceApk resourceApk,
@@ -156,11 +157,11 @@ public final class AndroidBinaryMobileInstall {
.setExecutable(
ruleContext.getExecutablePrerequisite("$build_incremental_dexmanifest", Mode.HOST))
.addOutput(incrementalDexManifest)
- .addInputs(dexingOutput.shardDexZips)
+ .addInputs(shardDexZips)
.addCommandLine(
CustomCommandLine.builder()
.addExecPath(incrementalDexManifest)
- .addExecPaths(dexingOutput.shardDexZips)
+ .addExecPaths(shardDexZips)
.build(),
ParamFileInfo.builder(ParameterFileType.UNQUOTED).build())
.build(ruleContext));
@@ -175,7 +176,7 @@ public final class AndroidBinaryMobileInstall {
ApkActionsBuilder.create("incremental apk")
.setClassesDex(stubDex)
.addInputZip(mobileInstallResourceApks.incrementalResourceApk.getArtifact())
- .setJavaResourceZip(dexingOutput.javaResourceJar, resourceExtractor)
+ .setJavaResourceZip(javaResourceJar, resourceExtractor)
.addInputZips(nativeLibsAar)
.setJavaResourceFile(stubData)
.setSignedApk(incrementalApk)
@@ -229,13 +230,13 @@ public final class AndroidBinaryMobileInstall {
.registerActions(ruleContext);
splitApkSetBuilder.add(resourceSplitApk);
- for (int i = 0; i < dexingOutput.shardDexZips.size(); i++) {
+ for (int i = 0; i < shardDexZips.size(); i++) {
String splitName = "dex" + (i + 1);
Artifact splitApkResources =
createSplitApkResources(ruleContext, applicationManifest, splitName, true);
Artifact splitApk = getMobileInstallArtifact(ruleContext, splitName + ".apk");
ApkActionsBuilder.create("split dex apk " + (i + 1))
- .setClassesDex(dexingOutput.shardDexZips.get(i))
+ .setClassesDex(shardDexZips.get(i))
.addInputZip(splitApkResources)
.setSignedApk(splitApk)
.setSigningKey(signingKey)
@@ -259,7 +260,7 @@ public final class AndroidBinaryMobileInstall {
Artifact javaSplitApk = getMobileInstallArtifact(ruleContext, "java_resources.apk");
ApkActionsBuilder.create("split Java resource apk")
.addInputZip(javaSplitApkResources)
- .setJavaResourceZip(dexingOutput.javaResourceJar, resourceExtractor)
+ .setJavaResourceZip(javaResourceJar, resourceExtractor)
.setSignedApk(javaSplitApk)
.setSigningKey(signingKey)
.registerActions(ruleContext);