aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java
diff options
context:
space:
mode:
authorGravatar corysmith <corysmith@google.com>2017-09-11 23:33:09 +0200
committerGravatar Philipp Wollermann <philwo@google.com>2017-09-12 14:06:18 +0200
commitdf8d70f694e1ed3f02004064a9de18ef4b82804c (patch)
treebe96d75ad5a071ab92a55c4c5de49605f6c63905 /src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java
parent52d718c11b73af6c5b278710dfce26434b2e0380 (diff)
Enable resource shrinking for aapt2.
First commit in series, the second will make the necessary changes to the action. RELNOTES: None PiperOrigin-RevId: 168286654
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java47
1 files changed, 22 insertions, 25 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 ec5f03a7ae..550597a7a1 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
@@ -827,13 +827,6 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory {
/** Returns {@code true} if resource shrinking should be performed. */
private static boolean shouldShrinkResources(RuleContext ruleContext) throws RuleErrorException {
-
- if (AndroidAaptVersion.chooseTargetAaptVersion(ruleContext) == AndroidAaptVersion.AAPT2) {
- ruleContext.attributeWarning(
- "shrink_resources", "aapt2 enabled builds do not yet support resource shrinking.");
- return false;
- }
-
TriState state = ruleContext.attributes().get("shrink_resources", BuildType.TRISTATE);
if (state == TriState.AUTO) {
boolean globalShrinkResources =
@@ -854,24 +847,28 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory {
if (LocalResourceContainer.definesAndroidResources(ruleContext.attributes())
&& !proguardSpecs.isEmpty()) {
- Artifact apk = new ResourceShrinkerActionBuilder(ruleContext)
- .setResourceApkOut(ruleContext.getImplicitOutputArtifact(
- AndroidRuleClasses.ANDROID_RESOURCES_SHRUNK_APK))
- .setShrunkResourcesOut(ruleContext.getImplicitOutputArtifact(
- AndroidRuleClasses.ANDROID_RESOURCES_SHRUNK_ZIP))
- .setLogOut(ruleContext.getImplicitOutputArtifact(
- AndroidRuleClasses.ANDROID_RESOURCE_SHRINKER_LOG))
- .withResourceFiles(ruleContext.getImplicitOutputArtifact(
- AndroidRuleClasses.ANDROID_RESOURCES_ZIP))
- .withShrunkJar(proguardOutput.getOutputJar())
- .withProguardMapping(proguardOutput.getMapping())
- .withPrimary(resourceApk.getPrimaryResource())
- .withDependencies(resourceApk.getResourceDependencies())
- .setResourceFilter(ResourceFilter.fromRuleContext(ruleContext))
-
- .setUncompressedExtensions(
- ruleContext.getTokenizedStringListAttr("nocompress_extensions"))
- .build();
+ Artifact apk =
+ new ResourceShrinkerActionBuilder(ruleContext)
+ .setResourceApkOut(
+ ruleContext.getImplicitOutputArtifact(
+ AndroidRuleClasses.ANDROID_RESOURCES_SHRUNK_APK))
+ .setShrunkResourcesOut(
+ ruleContext.getImplicitOutputArtifact(
+ AndroidRuleClasses.ANDROID_RESOURCES_SHRUNK_ZIP))
+ .setLogOut(
+ ruleContext.getImplicitOutputArtifact(
+ AndroidRuleClasses.ANDROID_RESOURCE_SHRINKER_LOG))
+ .withResourceFiles(
+ ruleContext.getImplicitOutputArtifact(AndroidRuleClasses.ANDROID_RESOURCES_ZIP))
+ .withShrunkJar(proguardOutput.getOutputJar())
+ .withProguardMapping(proguardOutput.getMapping())
+ .withPrimary(resourceApk.getPrimaryResource())
+ .withDependencies(resourceApk.getResourceDependencies())
+ .setTargetAaptVersion(AndroidAaptVersion.chooseTargetAaptVersion(ruleContext))
+ .setResourceFilter(ResourceFilter.fromRuleContext(ruleContext))
+ .setUncompressedExtensions(
+ ruleContext.getTokenizedStringListAttr("nocompress_extensions"))
+ .build();
filesBuilder.add(ruleContext.getImplicitOutputArtifact(
AndroidRuleClasses.ANDROID_RESOURCE_SHRINKER_LOG));
return new ResourceApk(apk,