aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Metcalf <gamblore@google.com>2013-07-30 22:20:10 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2013-07-30 22:20:10 +0000
commitb22d66478b16b270f263c0556f18ee4dd836fb21 (patch)
treeee92ca8ee5e0741331b1e4bed077dfe8d1d0c81b
parent66aa0767fa5129d5f2b4ce1bb12da06e9dd0ecbe (diff)
parent11a54bc85ae67470ad1f4dbd7213fb84f8d71a95 (diff)
downloadbuild-b22d66478b16b270f263c0556f18ee4dd836fb21.tar.gz
Merge "Add Java heap size argument to DexOptions."
-rw-r--r--builder/src/main/java/com/android/builder/AndroidBuilder.java4
-rw-r--r--builder/src/main/java/com/android/builder/DexOptions.java1
-rw-r--r--gradle/src/main/groovy/com/android/build/gradle/internal/dsl/DexOptionsImpl.groovy17
3 files changed, 22 insertions, 0 deletions
diff --git a/builder/src/main/java/com/android/builder/AndroidBuilder.java b/builder/src/main/java/com/android/builder/AndroidBuilder.java
index 86e1af0..6e32247 100644
--- a/builder/src/main/java/com/android/builder/AndroidBuilder.java
+++ b/builder/src/main/java/com/android/builder/AndroidBuilder.java
@@ -933,6 +933,10 @@ public class AndroidBuilder {
command.add(dx);
+ if (dexOptions.getJavaMaxHeapSize() != null) {
+ command.add("-JXmx" + dexOptions.getJavaMaxHeapSize());
+ }
+
command.add("--dex");
if (mVerboseExec) {
diff --git a/builder/src/main/java/com/android/builder/DexOptions.java b/builder/src/main/java/com/android/builder/DexOptions.java
index 37346a2..966d081 100644
--- a/builder/src/main/java/com/android/builder/DexOptions.java
+++ b/builder/src/main/java/com/android/builder/DexOptions.java
@@ -20,4 +20,5 @@ public interface DexOptions {
boolean isCoreLibrary();
boolean getIncremental();
+ String getJavaMaxHeapSize();
}
diff --git a/gradle/src/main/groovy/com/android/build/gradle/internal/dsl/DexOptionsImpl.groovy b/gradle/src/main/groovy/com/android/build/gradle/internal/dsl/DexOptionsImpl.groovy
index d98b87d..4a333e0 100644
--- a/gradle/src/main/groovy/com/android/build/gradle/internal/dsl/DexOptionsImpl.groovy
+++ b/gradle/src/main/groovy/com/android/build/gradle/internal/dsl/DexOptionsImpl.groovy
@@ -27,6 +27,9 @@ public class DexOptionsImpl implements DexOptions {
@Input
private boolean isIncrementalFlag = true
+ @Input
+ private String javaMaxHeapSize
+
public void setCoreLibrary(boolean coreLibrary) {
coreLibraryFlag = coreLibrary
}
@@ -44,4 +47,18 @@ public class DexOptionsImpl implements DexOptions {
boolean getIncremental() {
return isIncrementalFlag
}
+
+ public void setJavaMaxHeapSize(String theJavaMaxHeapSize) {
+ if (theJavaMaxHeapSize.matches("\\d+[kKmMgGtT]?")) {
+ javaMaxHeapSize = theJavaMaxHeapSize
+ } else {
+ throw new IllegalArgumentException(
+ "Invalid max heap size DexOption. See `man java` for valid -Xmx arguments.")
+ }
+ }
+
+ @Override
+ public String getJavaMaxHeapSize() {
+ return javaMaxHeapSize
+ }
}