From a868810834f233a4a1eccd849976d3bb89938627 Mon Sep 17 00:00:00 2001 From: ahumesky Date: Tue, 5 Sep 2017 23:21:26 +0200 Subject: Move mobile-install intermediate artifacts from _dx to _mobile_install to better organize the output tree of android_binary. RELNOTES: None. PiperOrigin-RevId: 167630660 --- .../rules/android/AndroidBinaryMobileInstall.java | 31 +++++++++++++--------- 1 file changed, 19 insertions(+), 12 deletions(-) (limited to 'src/main/java/com/google/devtools/build/lib/rules/android') 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 bd8169991f..b99940c493 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 @@ -87,7 +87,7 @@ public final class AndroidBinaryMobileInstall { .createSplitManifest(ruleContext, "android_resources", false) .packIncrementalBinaryWithDataAndResources( ruleContext, - AndroidBinary.getDxArtifact(ruleContext, "android_resources.ap_"), + getMobileInstallArtifact(ruleContext, "android_resources.ap_"), resourceDeps, ruleContext.getTokenizedStringListAttr("nocompress_extensions"), ruleContext.attributes().get("crunch_png", Type.BOOLEAN), @@ -110,7 +110,7 @@ public final class AndroidBinaryMobileInstall { splitResourceApk = applicationManifest .createSplitManifest(ruleContext, "android_resources", false) - .packWithResources(AndroidBinary.getDxArtifact(ruleContext, "android_resources.ap_"), + .packWithResources(getMobileInstallArtifact(ruleContext, "android_resources.ap_"), ruleContext, resourceDeps, false, /* createSource */ @@ -224,7 +224,7 @@ public final class AndroidBinaryMobileInstall { // manager would complain about references to missing resources in the manifest during the // installation of each split (said references would eventually get installed, but it cannot // know that in advance) - Artifact resourceSplitApk = AndroidBinary.getDxArtifact(ruleContext, "android_resources.apk"); + Artifact resourceSplitApk = getMobileInstallArtifact(ruleContext, "android_resources.apk"); ApkActionsBuilder.create("split Android resource apk") .addInputZip(mobileInstallResourceApks.splitResourceApk.getArtifact()) .setSignedApk(resourceSplitApk) @@ -236,7 +236,7 @@ public final class AndroidBinaryMobileInstall { String splitName = "dex" + (i + 1); Artifact splitApkResources = createSplitApkResources( ruleContext, applicationManifest, splitName, true); - Artifact splitApk = AndroidBinary.getDxArtifact(ruleContext, splitName + ".apk"); + Artifact splitApk = getMobileInstallArtifact(ruleContext, splitName + ".apk"); ApkActionsBuilder.create("split dex apk " + (i + 1)) .setClassesDex(dexingOutput.shardDexZips.get(i)) .addInputZip(splitApkResources) @@ -248,7 +248,7 @@ public final class AndroidBinaryMobileInstall { Artifact nativeSplitApkResources = createSplitApkResources( ruleContext, applicationManifest, "native", false); - Artifact nativeSplitApk = AndroidBinary.getDxArtifact(ruleContext, "native.apk"); + Artifact nativeSplitApk = getMobileInstallArtifact(ruleContext, "native.apk"); ApkActionsBuilder.create("split native apk") .addInputZip(nativeSplitApkResources) .setNativeLibs(nativeLibs) @@ -259,7 +259,7 @@ public final class AndroidBinaryMobileInstall { Artifact javaSplitApkResources = createSplitApkResources( ruleContext, applicationManifest, "java_resources", false); - Artifact javaSplitApk = AndroidBinary.getDxArtifact(ruleContext, "java_resources.apk"); + Artifact javaSplitApk = getMobileInstallArtifact(ruleContext, "java_resources.apk"); ApkActionsBuilder.create("split Java resource apk") .addInputZip(javaSplitApkResources) .setJavaResourceZip(dexingOutput.javaResourceJar, resourceExtractor) @@ -268,7 +268,7 @@ public final class AndroidBinaryMobileInstall { .registerActions(ruleContext); splitApkSetBuilder.add(javaSplitApk); - Artifact splitMainApkResources = AndroidBinary.getDxArtifact(ruleContext, "split_main.ap_"); + Artifact splitMainApkResources = getMobileInstallArtifact(ruleContext, "split_main.ap_"); ruleContext.registerAction( new SpawnAction.Builder() .useDefaultShellEnvironment() @@ -285,7 +285,7 @@ public final class AndroidBinaryMobileInstall { .build(ruleContext)); NestedSet splitApks = splitApkSetBuilder.build(); - Artifact splitMainApk = AndroidBinary.getDxArtifact(ruleContext, "split_main.apk"); + Artifact splitMainApk = getMobileInstallArtifact(ruleContext, "split_main.apk"); Artifact splitStubDex = getStubDex(ruleContext, javaSemantics, true); ruleContext.assertNoErrors(); ApkActionsBuilder.create("split main apk") @@ -373,7 +373,7 @@ public final class AndroidBinaryMobileInstall { .build() .collapseToFunction(); } - Artifact stubDeployJar = AndroidBinary.getDxArtifact(ruleContext, + Artifact stubDeployJar = getMobileInstallArtifact(ruleContext, split ? "split_stub_deploy.jar" : "stub_deploy.jar"); new DeployArchiveBuilder(javaSemantics, ruleContext) .setOutputJar(stubDeployJar) @@ -382,7 +382,7 @@ public final class AndroidBinaryMobileInstall { .build(); Artifact stubDex = - AndroidBinary.getDxArtifact( + getMobileInstallArtifact( ruleContext, split ? "split_stub_application/classes.dex" : "stub_application/classes.dex"); AndroidCommon.createDexAction( @@ -493,8 +493,7 @@ public final class AndroidBinaryMobileInstall { ApplicationManifest mainManifest, String splitName, boolean hasCode) { Artifact splitManifest = mainManifest.createSplitManifest(ruleContext, splitName, hasCode) .getManifest(); - Artifact splitResources = - AndroidBinary.getDxArtifact(ruleContext, "split_" + splitName + ".ap_"); + Artifact splitResources = getMobileInstallArtifact(ruleContext, "split_" + splitName + ".ap_"); AndroidSdkProvider sdk = AndroidSdkProvider.fromRuleContext(ruleContext); ruleContext.registerAction( new SpawnAction.Builder() @@ -516,4 +515,12 @@ public final class AndroidBinaryMobileInstall { return splitResources; } + + /** + * Returns an intermediate artifact used to support mobile-install. + */ + private static Artifact getMobileInstallArtifact(RuleContext ruleContext, String baseName) { + return ruleContext.getUniqueDirectoryArtifact("_mobile_install", baseName, + ruleContext.getBinOrGenfilesDirectory()); + } } -- cgit v1.2.3