aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinaryMobileInstall.java
diff options
context:
space:
mode:
authorGravatar ahumesky <ahumesky@google.com>2017-09-05 23:21:26 +0200
committerGravatar Yun Peng <pcloudy@google.com>2017-09-06 10:10:22 +0200
commita868810834f233a4a1eccd849976d3bb89938627 (patch)
tree027fcc431f65a39aeba4f9120d839bcae1efc104 /src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinaryMobileInstall.java
parent831f7e179f8760cb31fb884c85fca1ea8197bdf5 (diff)
Move mobile-install intermediate artifacts from _dx to _mobile_install to better
organize the output tree of android_binary. RELNOTES: None. PiperOrigin-RevId: 167630660
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinaryMobileInstall.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinaryMobileInstall.java31
1 files changed, 19 insertions, 12 deletions
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<Artifact> 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());
+ }
}