1eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam#!/usr/bin/env bash 2eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam 3eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam############################################################################## 4eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam## 5eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam## Gradle start up script for UN*X 6eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam## 7eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam############################################################################## 8eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam 9eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 10eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice LamDEFAULT_JVM_OPTS="" 11eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam 12eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice LamAPP_NAME="Gradle" 13eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice LamAPP_BASE_NAME=`basename "$0"` 14eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam 15eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam# Use the maximum available, or set MAX_FD != -1 to use that value. 16eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice LamMAX_FD="maximum" 17eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam 18eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lamwarn ( ) { 19eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam echo "$*" 20eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam} 21eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam 22eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lamdie ( ) { 23eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam echo 24eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam echo "$*" 25eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam echo 26eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam exit 1 27eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam} 28eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam 29eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam# OS specific support (must be 'true' or 'false'). 30eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lamcygwin=false 31eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lammsys=false 32eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lamdarwin=false 33eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lamcase "`uname`" in 34eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam CYGWIN* ) 35eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam cygwin=true 36eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam ;; 37eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam Darwin* ) 38eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam darwin=true 39eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam ;; 40eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam MINGW* ) 41eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam msys=true 42eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam ;; 43eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lamesac 44eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam 45eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam# For Cygwin, ensure paths are in UNIX format before anything is touched. 46eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lamif $cygwin ; then 47eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` 48eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lamfi 49eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam 50eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam# Attempt to set APP_HOME 51eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam# Resolve links: $0 may be a link 52eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice LamPRG="$0" 53eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam# Need this for relative symlinks. 54eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lamwhile [ -h "$PRG" ] ; do 55eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam ls=`ls -ld "$PRG"` 56eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam link=`expr "$ls" : '.*-> \(.*\)$'` 57eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam if expr "$link" : '/.*' > /dev/null; then 58eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam PRG="$link" 59eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam else 60eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam PRG=`dirname "$PRG"`"/$link" 61eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam fi 62eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lamdone 63eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice LamSAVED="`pwd`" 64eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lamcd "`dirname \"$PRG\"`/" >&- 65eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice LamAPP_HOME="`pwd -P`" 66eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lamcd "$SAVED" >&- 67eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam 68eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lamif [ $(basename `pwd`) == "gradle" ]; then 69eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam echo "This cannot be run here. It should be copied to the root of the platform." 70eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam exit 71eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lamelse 72eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam CLASSPATH=./gradle/wrapper/gradle-wrapper.jar 73eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lamfi 74eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam 75eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam# Determine the Java command to use to start the JVM. 76eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lamif [ -n "$JAVA_HOME" ] ; then 77eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 78eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam # IBM's JDK on AIX uses strange locations for the executables 79eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam JAVACMD="$JAVA_HOME/jre/sh/java" 80eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam else 81eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam JAVACMD="$JAVA_HOME/bin/java" 82eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam fi 83eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam if [ ! -x "$JAVACMD" ] ; then 84eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME 85eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam 86eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice LamPlease set the JAVA_HOME variable in your environment to match the 87eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lamlocation of your Java installation." 88eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam fi 89eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lamelse 90eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam JAVACMD="java" 91eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 92eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam 93eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice LamPlease set the JAVA_HOME variable in your environment to match the 94eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lamlocation of your Java installation." 95eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lamfi 96eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam 97eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam# Increase the maximum file descriptors if we can. 98eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lamif [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then 99eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam MAX_FD_LIMIT=`ulimit -H -n` 100eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam if [ $? -eq 0 ] ; then 101eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then 102eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam MAX_FD="$MAX_FD_LIMIT" 103eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam fi 104eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam ulimit -n $MAX_FD 105eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam if [ $? -ne 0 ] ; then 106eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam warn "Could not set maximum file descriptor limit: $MAX_FD" 107eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam fi 108eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam else 109eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" 110eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam fi 111eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lamfi 112eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam 113eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam# For Darwin, add options to specify how the application appears in the dock 114eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lamif $darwin; then 115eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" 116eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lamfi 117eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam 118eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam# For Cygwin, switch paths to Windows format before running java 119eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lamif $cygwin ; then 120eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam APP_HOME=`cygpath --path --mixed "$APP_HOME"` 121eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` 122eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam 123eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam # We build the pattern for arguments to be converted via cygpath 124eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` 125eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam SEP="" 126eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam for dir in $ROOTDIRSRAW ; do 127eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam ROOTDIRS="$ROOTDIRS$SEP$dir" 128eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam SEP="|" 129eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam done 130eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam OURCYGPATTERN="(^($ROOTDIRS))" 131eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam # Add a user-defined pattern to the cygpath arguments 132eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam if [ "$GRADLE_CYGPATTERN" != "" ] ; then 133eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" 134eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam fi 135eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam # Now convert the arguments - kludge to limit ourselves to /bin/sh 136eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam i=0 137eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam for arg in "$@" ; do 138eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` 139eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option 140eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam 141eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition 142eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` 143eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam else 144eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam eval `echo args$i`="\"$arg\"" 145eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam fi 146eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam i=$((i+1)) 147eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam done 148eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam case $i in 149eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam (0) set -- ;; 150eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam (1) set -- "$args0" ;; 151eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam (2) set -- "$args0" "$args1" ;; 152eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam (3) set -- "$args0" "$args1" "$args2" ;; 153eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam (4) set -- "$args0" "$args1" "$args2" "$args3" ;; 154eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; 155eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; 156eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; 157eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; 158eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; 159eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam esac 160eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lamfi 161eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam 162eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules 163eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lamfunction splitJvmOpts() { 164eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam JVM_OPTS=("$@") 165eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam} 166eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lameval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS 167eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice LamJVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" 168eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam 169eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam# For reproducible builds, always use the SDKs stored in source control 170eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lamif $darwin; then 171eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam ANDROID_HOME="$APP_HOME/prebuilts/fullsdk/darwin" 172eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lamelse 173eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam ANDROID_HOME="$APP_HOME/prebuilts/fullsdk/linux" 174eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lamfi 175eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lamexport ANDROID_HOME 176eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam 177eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam# Also, blow away lint's API cache, since it can easily become out of date 178eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam# if we're building against pre-release SDKs 179eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam(cd "$HOME/.android/cache" && rm -f api-versions*) 2> /dev/null 180eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam 181eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam# Change the project's .gradle to the android out dir. 182eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice LamANDROID_OUT_ROOT="$APP_HOME/out" 183eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lamif [[ -n "$OUT_DIR" ]]; then 184eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam ANDROID_OUT_ROOT="$OUT_DIR" 185eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lamfi 186eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam 187eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice LamANDROID_CACHE_DIR="$ANDROID_OUT_ROOT/gradle/.gradle" 188eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam 189eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam# Change the local user directories to be under the android out dir 190eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lamexport GRADLE_USER_HOME="$ANDROID_OUT_ROOT/gradle/.gradle" 191eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lamexport M2_HOME="$ANDROID_OUT_ROOT/gradle/.m2" 192eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam 193eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam# NewRatio is the ratio of the total heap size to new generation size the JVM tries to maintain. 194eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam# Higher values mean smaller new generations. 195eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam# The default is 2. Setting this to 3. 196eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam# Higher values should "stabalize" heap usage somewhat and helps keep the total heap 197eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam# size from growing too quickly (the JVM is more willing to grow the new generation than the old). 198eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam# Also, the old generation is more "friendly" to being swapped out to disk than the new generation. 199eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam# This should help out on lower memory machines. 200eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam# Profiling has shown that the extra GCs done because of this are trivial in added time. 201eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lamexec "$JAVACMD" "${JVM_OPTS[@]}" \ 202eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam -classpath "$CLASSPATH" \ 203eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam org.gradle.wrapper.GradleWrapperMain \ 204eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam --project-cache-dir=$ANDROID_CACHE_DIR \ 205eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam --configure-on-demand \ 206eea7ecd835f2ea16a80709d740c913f6a0d8afa5Maurice Lam "$@" 207