diff options
author | 2017-02-23 16:56:55 +0000 | |
---|---|---|
committer | 2017-02-24 08:29:03 +0000 | |
commit | bb4615c2fabe20121ed8ef5dd786cbf4d5f7c7d4 (patch) | |
tree | be60df517db3f88ef49f09f2845dd6681debfac5 /src | |
parent | 735777a6b9845938d71ba8a35bebf62ecc0b2d75 (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')
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()); |