aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/android/ApplicationManifest.java
diff options
context:
space:
mode:
authorGravatar asteinb <asteinb@google.com>2018-04-18 06:06:25 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-04-18 06:07:48 -0700
commit5938de7e9ecb41e17e6fa5cf91a911c626862c45 (patch)
tree5a214294b143e56f40e0a331e6ec94aad0c2cb96 /src/main/java/com/google/devtools/build/lib/rules/android/ApplicationManifest.java
parentfa36d2f48965b127e8fd397348d16e991135bfb6 (diff)
Clean up R class generation
Remove R class generation from AndroidCommon and instead invoke it just after resource processing. This is much more intuitive, behaves the same, and will make it easier to call into R class generation on the new pipeline. Also, clean up some dead code (including newly-dead code) from AndroidCommon. RELNOTES: none PiperOrigin-RevId: 193345190
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/android/ApplicationManifest.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/ApplicationManifest.java24
1 files changed, 22 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/ApplicationManifest.java b/src/main/java/com/google/devtools/build/lib/rules/android/ApplicationManifest.java
index 9ce263170d..8b6775b44b 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/ApplicationManifest.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/ApplicationManifest.java
@@ -348,7 +348,16 @@ public final class ApplicationManifest {
}
ResourceContainer processed = builder.build(ruleContext);
- return ResourceApk.of(processed, resourceDeps, proguardCfg, mainDexProguardCfg);
+ ResourceContainer finalContainer =
+ new RClassGeneratorActionBuilder(ruleContext)
+ .targetAaptVersion(AndroidAaptVersion.chooseTargetAaptVersion(ruleContext))
+ .withDependencies(resourceDeps)
+ .setClassJarOut(
+ ruleContext.getImplicitOutputArtifact(
+ AndroidRuleClasses.ANDROID_RESOURCES_CLASS_JAR))
+ .build(processed);
+
+ return ResourceApk.of(finalContainer, resourceDeps, proguardCfg, mainDexProguardCfg);
}
/** Packages up the manifest with resource and assets from the LocalResourceContainer. */
@@ -467,6 +476,8 @@ public final class ApplicationManifest {
.setPackageUnderTest(null)
.build(ruleContext);
+ // Intentionally skip building an R class JAR - incremental binaries handle this separately.
+
return ResourceApk.of(processed, resourceDeps, proguardCfg, null);
}
@@ -548,7 +559,16 @@ public final class ApplicationManifest {
.setSourceJarOut(resourceContainer.getJavaSourceJar())
.build(ruleContext);
- return ResourceApk.of(processed, resourceDeps, proguardCfg, mainDexProguardCfg);
+ ResourceContainer finalContainer =
+ new RClassGeneratorActionBuilder(ruleContext)
+ .targetAaptVersion(AndroidAaptVersion.chooseTargetAaptVersion(ruleContext))
+ .withDependencies(resourceDeps)
+ .setClassJarOut(
+ ruleContext.getImplicitOutputArtifact(
+ AndroidRuleClasses.ANDROID_RESOURCES_CLASS_JAR))
+ .build(processed);
+
+ return ResourceApk.of(finalContainer, resourceDeps, proguardCfg, mainDexProguardCfg);
}
public ResourceApk packLibraryWithDataAndResources(