diff options
author | 2017-03-30 17:46:21 +0000 | |
---|---|---|
committer | 2017-03-31 17:09:38 +0200 | |
commit | bd151bf2623fe27f66079335ade5048d80e9f772 (patch) | |
tree | 3bb5f4d34b0b10e55ac2542e720dddfb1ef191da /src/main/java/com/google/devtools/build/lib | |
parent | 706bafe7aa17ed6ef1187986af3ba749559fb232 (diff) |
Modify AndroidSemantics#addMainDexListActionArguments to take proguard map as argument.
This is needed because which proguard map that gets added as an argument to mainDexListAction depends on whether or not Rex is enabled
RELNOTES: None
PiperOrigin-RevId: 151720305
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib')
3 files changed, 13 insertions, 7 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/BazelAndroidSemantics.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/BazelAndroidSemantics.java index 3ddcf58760..31eedc4da4 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/BazelAndroidSemantics.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/BazelAndroidSemantics.java @@ -81,7 +81,8 @@ public class BazelAndroidSemantics implements AndroidSemantics { } @Override - public void addMainDexListActionArguments(RuleContext ruleContext, SpawnAction.Builder builder) { + public void addMainDexListActionArguments( + RuleContext ruleContext, SpawnAction.Builder builder, Artifact proguardMap) { } @Override 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 9ae24818b7..bc6d3e2603 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 @@ -504,7 +504,8 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory { androidCommon, resourceApk.getMainDexProguardConfig(), resourceClasses, - derivedJarFunction); + derivedJarFunction, + proguardOutputMap); NestedSet<Artifact> nativeLibsZips = AndroidCommon.collectTransitiveNativeLibsZips(ruleContext).build(); @@ -1220,7 +1221,8 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory { AndroidCommon common, @Nullable Artifact mainDexProguardSpec, JavaTargetAttributes attributes, - Function<Artifact, Artifact> derivedJarFunction) + Function<Artifact, Artifact> derivedJarFunction, + @Nullable Artifact proguardOutputMap) throws InterruptedException, RuleErrorException { List<String> dexopts = ruleContext.getTokenizedStringListAttr("dexopts"); MultidexMode multidexMode = getMultidexMode(ruleContext); @@ -1277,7 +1279,7 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory { if (multidexMode == MultidexMode.LEGACY) { // For legacy multidex, we need to generate a list for the dexer's --main-dex-list flag. mainDexList = createMainDexListAction( - ruleContext, androidSemantics, proguardedJar, mainDexProguardSpec); + ruleContext, androidSemantics, proguardedJar, mainDexProguardSpec, proguardOutputMap); } Artifact classesDex = getDxArtifact(ruleContext, "classes.dex.zip"); @@ -1676,7 +1678,8 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory { RuleContext ruleContext, AndroidSemantics androidSemantics, Artifact jar, - @Nullable Artifact mainDexProguardSpec) + @Nullable Artifact mainDexProguardSpec, + @Nullable Artifact proguardOutputMap) throws InterruptedException { // Process the input jar through Proguard into an intermediate, streamlined jar. Artifact strippedJar = AndroidBinary.getDxArtifact(ruleContext, "main_dex_intermediate.jar"); @@ -1714,7 +1717,8 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory { streamlinedBuilder.addInputArgument(spec); } - androidSemantics.addMainDexListActionArguments(ruleContext, streamlinedBuilder); + androidSemantics + .addMainDexListActionArguments(ruleContext, streamlinedBuilder, proguardOutputMap); ruleContext.registerAction(streamlinedBuilder.build(ruleContext)); diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSemantics.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSemantics.java index 377e80e0bb..b791b69f01 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSemantics.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSemantics.java @@ -88,7 +88,8 @@ public interface AndroidSemantics { * Configures the builder for generating the output jar used to configure the main dex file. * @throws InterruptedException */ - void addMainDexListActionArguments(RuleContext ruleContext, SpawnAction.Builder builder) + void addMainDexListActionArguments( + RuleContext ruleContext, SpawnAction.Builder builder, Artifact proguardMap) throws InterruptedException; /** |