aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Andrew Pellegrini <apell@google.com>2017-02-23 16:56:55 +0000
committerGravatar Irina Iancu <elenairina@google.com>2017-02-24 08:29:03 +0000
commitbb4615c2fabe20121ed8ef5dd786cbf4d5f7c7d4 (patch)
treebe60df517db3f88ef49f09f2845dd6681debfac5 /src
parent735777a6b9845938d71ba8a35bebf62ecc0b2d75 (diff)
Implicitly generate Proguard obfuscation mapping file for android_binary targets when both resource shrinking and Proguard are enabled, as it is required by resource shrinking to work properly.
RELNOTES: Automatically generate Proguard mapping when resource shrinking and Proguard are enabled. -- PiperOrigin-RevId: 148349205 MOS_MIGRATED_REVID=148349205
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/android/BazelAndroidBinaryRule.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/ResourceShrinkerActionBuilder.java9
3 files changed, 8 insertions, 6 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/BazelAndroidBinaryRule.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/BazelAndroidBinaryRule.java
index 96ef54f1cb..f39b2fa768 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/BazelAndroidBinaryRule.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/BazelAndroidBinaryRule.java
@@ -76,7 +76,7 @@ public class BazelAndroidBinaryRule implements RuleDefinition {
<a href="${link android_binary.proguard_specs}">proguard_specs</a> attribute is
specified and
<a href="${link android_binary.proguard_generate_mapping}">proguard_generate_mapping</a>
- is set.
+ or <a href="${link android_binary.shrink_resources}">shrink_resources</a> is set.
</li>
</ul>
<!-- #END_BLAZE_RULE.IMPLICIT_OUTPUTS --> */
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 3ee5af90cc..30352944b3 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
@@ -434,7 +434,8 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory {
// which this -printmapping command line flag will override.
Artifact proguardOutputMap = null;
if (ProguardHelper.genProguardMapping(ruleContext.attributes())
- || ProguardHelper.getJavaOptimizationMode(ruleContext).alwaysGenerateOutputMapping()) {
+ || ProguardHelper.getJavaOptimizationMode(ruleContext).alwaysGenerateOutputMapping()
+ || shrinkResources) {
if (rexEnabled) {
proguardOutputMap = ProguardHelper.getProguardTempArtifact(ruleContext,
ProguardHelper.getJavaOptimizationMode(ruleContext).name().toLowerCase(),
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/ResourceShrinkerActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/android/ResourceShrinkerActionBuilder.java
index 4d234291c6..861a98389b 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/ResourceShrinkerActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/ResourceShrinkerActionBuilder.java
@@ -177,7 +177,10 @@ public class ResourceShrinkerActionBuilder {
checkNotNull(resourceFilesZip);
checkNotNull(shrunkJar);
+ checkNotNull(proguardMapping);
checkNotNull(primaryResources);
+ checkNotNull(primaryResources.getRTxt());
+ checkNotNull(primaryResources.getManifest());
checkNotNull(resourceApkOut);
commandLine.addExecPath("--resources", resourceFilesZip);
@@ -186,10 +189,8 @@ public class ResourceShrinkerActionBuilder {
commandLine.addExecPath("--shrunkJar", shrunkJar);
inputs.add(shrunkJar);
- if (proguardMapping != null) {
- commandLine.addExecPath("--proguardMapping", proguardMapping);
- inputs.add(proguardMapping);
- }
+ commandLine.addExecPath("--proguardMapping", proguardMapping);
+ inputs.add(proguardMapping);
commandLine.addExecPath("--rTxt", primaryResources.getRTxt());
inputs.add(primaryResources.getRTxt());