diff options
author | 2018-04-26 15:20:22 -0700 | |
---|---|---|
committer | 2018-04-26 15:22:16 -0700 | |
commit | 805f54c28836d6eadfbbf3f0815816cb5ecaff82 (patch) | |
tree | 3845985599098a565afdea4fe2626bed48b23969 /src/main/java/com/google | |
parent | 257ddab3bc80967bc88b52e5ea7b8b58d3d100a4 (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.java | 6 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinaryMobileInstall.java | 15 |
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); |