aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2016-06-10 22:07:44 +0000
committerGravatar Yue Gan <yueg@google.com>2016-06-13 08:11:17 +0000
commit82e992e7ada86b937cd76367a959b041962370e5 (patch)
tree0614fe14d7ce0e2b0b1d45ebd20b856aa0670b9d /src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java
parent6f162c8476ba1ca6a2bb8242ac5980e5adcd4ebd (diff)
Add addMainDexListActionArguments to AndroidSemantics.
-- MOS_MIGRATED_REVID=124602618
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.java13
1 files changed, 11 insertions, 2 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 e31c1bb90d..e36b28d2e3 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
@@ -405,6 +405,7 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory {
? dexWithJack(ruleContext, androidCommon, proguardSpecs)
: dex(
ruleContext,
+ androidSemantics,
binaryJar,
jarToDex,
isBinaryJarFiltered,
@@ -1052,6 +1053,7 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory {
/** Creates one or more classes.dex files that correspond to {@code proguardedJar}. */
private static DexingOutput dex(
RuleContext ruleContext,
+ AndroidSemantics androidSemantics,
Artifact binaryJar,
Artifact proguardedJar,
boolean isBinaryJarFiltered,
@@ -1111,7 +1113,8 @@ 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, proguardedJar, mainDexProguardSpec);
+ mainDexList = createMainDexListAction(
+ ruleContext, androidSemantics, proguardedJar, mainDexProguardSpec);
}
Artifact classesDex = getDxArtifact(ruleContext, "classes.dex.zip");
@@ -1394,7 +1397,11 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory {
* Returns the file containing the list.
*/
static Artifact createMainDexListAction(
- RuleContext ruleContext, Artifact jar, @Nullable Artifact mainDexProguardSpec) {
+ RuleContext ruleContext,
+ AndroidSemantics androidSemantics,
+ Artifact jar,
+ @Nullable Artifact mainDexProguardSpec)
+ throws InterruptedException {
// Process the input jar through Proguard into an intermediate, streamlined jar.
Artifact strippedJar = AndroidBinary.getDxArtifact(ruleContext, "main_dex_intermediate.jar");
AndroidSdkProvider sdk = AndroidSdkProvider.fromRuleContext(ruleContext);
@@ -1431,6 +1438,8 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory {
streamlinedBuilder.addInputArgument(spec);
}
+ androidSemantics.addMainDexListActionArguments(ruleContext, streamlinedBuilder);
+
ruleContext.registerAction(streamlinedBuilder.build(ruleContext));
// Create the main dex classes list.