aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2017-03-30 17:46:21 +0000
committerGravatar Philipp Wollermann <philwo@google.com>2017-03-31 17:09:38 +0200
commitbd151bf2623fe27f66079335ade5048d80e9f772 (patch)
tree3bb5f4d34b0b10e55ac2542e720dddfb1ef191da /src/main/java/com/google/devtools/build/lib
parent706bafe7aa17ed6ef1187986af3ba749559fb232 (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')
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/android/BazelAndroidSemantics.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java14
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidSemantics.java3
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;
/**