diff options
author | 2018-04-18 06:06:25 -0700 | |
---|---|---|
committer | 2018-04-18 06:07:48 -0700 | |
commit | 5938de7e9ecb41e17e6fa5cf91a911c626862c45 (patch) | |
tree | 5a214294b143e56f40e0a331e6ec94aad0c2cb96 /src/main/java/com/google/devtools/build/lib/rules/android/ApplicationManifest.java | |
parent | fa36d2f48965b127e8fd397348d16e991135bfb6 (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.java | 24 |
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( |