xref: /aosp_15_r20/tools/metalava/gradlew (revision 115816f9299ab6ddd6b9673b81f34e707f6bacab)
1*115816f9SAndroid Build Coastguard Worker#!/usr/bin/env sh
2*115816f9SAndroid Build Coastguard Worker
3*115816f9SAndroid Build Coastguard Worker# Metalava modification start ------------------------------------------------
4*115816f9SAndroid Build Coastguard WorkerSCRIPT_PATH="$(cd $(dirname $0) && pwd -P)"
5*115816f9SAndroid Build Coastguard Workerif [ -n "$OUT_DIR" ] ; then
6*115816f9SAndroid Build Coastguard Worker    mkdir -p "$OUT_DIR"
7*115816f9SAndroid Build Coastguard Worker    OUT_DIR="$(cd $OUT_DIR && pwd -P)"
8*115816f9SAndroid Build Coastguard Workerelse
9*115816f9SAndroid Build Coastguard Worker    CHECKOUT_ROOT="$(cd $SCRIPT_PATH/../.. && pwd -P)"
10*115816f9SAndroid Build Coastguard Worker    export OUT_DIR="$CHECKOUT_ROOT/out"
11*115816f9SAndroid Build Coastguard Workerfi
12*115816f9SAndroid Build Coastguard Worker# Metalava modification end---------------------------------------------------
13*115816f9SAndroid Build Coastguard Worker
14*115816f9SAndroid Build Coastguard Worker##############################################################################
15*115816f9SAndroid Build Coastguard Worker##
16*115816f9SAndroid Build Coastguard Worker##  Gradle start up script for UN*X
17*115816f9SAndroid Build Coastguard Worker##
18*115816f9SAndroid Build Coastguard Worker##############################################################################
19*115816f9SAndroid Build Coastguard Worker
20*115816f9SAndroid Build Coastguard Worker# Attempt to set APP_HOME
21*115816f9SAndroid Build Coastguard Worker# Resolve links: $0 may be a link
22*115816f9SAndroid Build Coastguard WorkerPRG="$0"
23*115816f9SAndroid Build Coastguard Worker# Need this for relative symlinks.
24*115816f9SAndroid Build Coastguard Workerwhile [ -h "$PRG" ] ; do
25*115816f9SAndroid Build Coastguard Worker    ls=`ls -ld "$PRG"`
26*115816f9SAndroid Build Coastguard Worker    link=`expr "$ls" : '.*-> \(.*\)$'`
27*115816f9SAndroid Build Coastguard Worker    if expr "$link" : '/.*' > /dev/null; then
28*115816f9SAndroid Build Coastguard Worker        PRG="$link"
29*115816f9SAndroid Build Coastguard Worker    else
30*115816f9SAndroid Build Coastguard Worker        PRG=`dirname "$PRG"`"/$link"
31*115816f9SAndroid Build Coastguard Worker    fi
32*115816f9SAndroid Build Coastguard Workerdone
33*115816f9SAndroid Build Coastguard WorkerSAVED="`pwd`"
34*115816f9SAndroid Build Coastguard Workercd "`dirname \"$PRG\"`/" >/dev/null
35*115816f9SAndroid Build Coastguard WorkerAPP_HOME="`pwd -P`"
36*115816f9SAndroid Build Coastguard Workercd "$SAVED" >/dev/null
37*115816f9SAndroid Build Coastguard Worker
38*115816f9SAndroid Build Coastguard WorkerAPP_NAME="Gradle"
39*115816f9SAndroid Build Coastguard WorkerAPP_BASE_NAME=`basename "$0"`
40*115816f9SAndroid Build Coastguard Worker
41*115816f9SAndroid Build Coastguard Worker# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
42*115816f9SAndroid Build Coastguard WorkerDEFAULT_JVM_OPTS=""
43*115816f9SAndroid Build Coastguard Worker
44*115816f9SAndroid Build Coastguard Worker# Use the maximum available, or set MAX_FD != -1 to use that value.
45*115816f9SAndroid Build Coastguard WorkerMAX_FD="maximum"
46*115816f9SAndroid Build Coastguard Worker
47*115816f9SAndroid Build Coastguard Workerwarn () {
48*115816f9SAndroid Build Coastguard Worker    echo "$*"
49*115816f9SAndroid Build Coastguard Worker}
50*115816f9SAndroid Build Coastguard Worker
51*115816f9SAndroid Build Coastguard Workerdie () {
52*115816f9SAndroid Build Coastguard Worker    echo
53*115816f9SAndroid Build Coastguard Worker    echo "$*"
54*115816f9SAndroid Build Coastguard Worker    echo
55*115816f9SAndroid Build Coastguard Worker    exit 1
56*115816f9SAndroid Build Coastguard Worker}
57*115816f9SAndroid Build Coastguard Worker
58*115816f9SAndroid Build Coastguard Worker# OS specific support (must be 'true' or 'false').
59*115816f9SAndroid Build Coastguard Workercygwin=false
60*115816f9SAndroid Build Coastguard Workermsys=false
61*115816f9SAndroid Build Coastguard Workerdarwin=false
62*115816f9SAndroid Build Coastguard Workernonstop=false
63*115816f9SAndroid Build Coastguard Workercase "`uname`" in
64*115816f9SAndroid Build Coastguard Worker  CYGWIN* )
65*115816f9SAndroid Build Coastguard Worker    cygwin=true
66*115816f9SAndroid Build Coastguard Worker    ;;
67*115816f9SAndroid Build Coastguard Worker  Darwin* )
68*115816f9SAndroid Build Coastguard Worker    darwin=true
69*115816f9SAndroid Build Coastguard Worker    ;;
70*115816f9SAndroid Build Coastguard Worker  MINGW* )
71*115816f9SAndroid Build Coastguard Worker    msys=true
72*115816f9SAndroid Build Coastguard Worker    ;;
73*115816f9SAndroid Build Coastguard Worker  NONSTOP* )
74*115816f9SAndroid Build Coastguard Worker    nonstop=true
75*115816f9SAndroid Build Coastguard Worker    ;;
76*115816f9SAndroid Build Coastguard Workeresac
77*115816f9SAndroid Build Coastguard Worker
78*115816f9SAndroid Build Coastguard WorkerCLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
79*115816f9SAndroid Build Coastguard Worker
80*115816f9SAndroid Build Coastguard Worker# --------------------- start of metalava changes ------------------------
81*115816f9SAndroid Build Coastguard Workerif [ $darwin == "true" ]; then
82*115816f9SAndroid Build Coastguard Worker    plat="darwin"
83*115816f9SAndroid Build Coastguard Workerelse
84*115816f9SAndroid Build Coastguard Worker    plat="linux"
85*115816f9SAndroid Build Coastguard Workerfi
86*115816f9SAndroid Build Coastguard Workerexport JAVA_HOME="$APP_HOME/../../prebuilts/jdk/jdk21/$plat-x86"
87*115816f9SAndroid Build Coastguard Worker# --------------------- end of metalava changes ------------------------
88*115816f9SAndroid Build Coastguard Worker
89*115816f9SAndroid Build Coastguard Worker# Determine the Java command to use to start the JVM.
90*115816f9SAndroid Build Coastguard Workerif [ -n "$JAVA_HOME" ] ; then
91*115816f9SAndroid Build Coastguard Worker    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
92*115816f9SAndroid Build Coastguard Worker        # IBM's JDK on AIX uses strange locations for the executables
93*115816f9SAndroid Build Coastguard Worker        JAVACMD="$JAVA_HOME/jre/sh/java"
94*115816f9SAndroid Build Coastguard Worker    else
95*115816f9SAndroid Build Coastguard Worker        JAVACMD="$JAVA_HOME/bin/java"
96*115816f9SAndroid Build Coastguard Worker    fi
97*115816f9SAndroid Build Coastguard Worker    if [ ! -x "$JAVACMD" ] ; then
98*115816f9SAndroid Build Coastguard Worker        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
99*115816f9SAndroid Build Coastguard Worker
100*115816f9SAndroid Build Coastguard WorkerPlease set the JAVA_HOME variable in your environment to match the
101*115816f9SAndroid Build Coastguard Workerlocation of your Java installation."
102*115816f9SAndroid Build Coastguard Worker    fi
103*115816f9SAndroid Build Coastguard Workerelse
104*115816f9SAndroid Build Coastguard Worker    JAVACMD="java"
105*115816f9SAndroid Build Coastguard Worker    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
106*115816f9SAndroid Build Coastguard Worker
107*115816f9SAndroid Build Coastguard WorkerPlease set the JAVA_HOME variable in your environment to match the
108*115816f9SAndroid Build Coastguard Workerlocation of your Java installation."
109*115816f9SAndroid Build Coastguard Workerfi
110*115816f9SAndroid Build Coastguard Worker
111*115816f9SAndroid Build Coastguard Worker# Increase the maximum file descriptors if we can.
112*115816f9SAndroid Build Coastguard Workerif [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
113*115816f9SAndroid Build Coastguard Worker    MAX_FD_LIMIT=`ulimit -H -n`
114*115816f9SAndroid Build Coastguard Worker    if [ $? -eq 0 ] ; then
115*115816f9SAndroid Build Coastguard Worker        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
116*115816f9SAndroid Build Coastguard Worker            MAX_FD="$MAX_FD_LIMIT"
117*115816f9SAndroid Build Coastguard Worker        fi
118*115816f9SAndroid Build Coastguard Worker        ulimit -n $MAX_FD
119*115816f9SAndroid Build Coastguard Worker        if [ $? -ne 0 ] ; then
120*115816f9SAndroid Build Coastguard Worker            warn "Could not set maximum file descriptor limit: $MAX_FD"
121*115816f9SAndroid Build Coastguard Worker        fi
122*115816f9SAndroid Build Coastguard Worker    else
123*115816f9SAndroid Build Coastguard Worker        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
124*115816f9SAndroid Build Coastguard Worker    fi
125*115816f9SAndroid Build Coastguard Workerfi
126*115816f9SAndroid Build Coastguard Worker
127*115816f9SAndroid Build Coastguard Worker# For Darwin, add options to specify how the application appears in the dock
128*115816f9SAndroid Build Coastguard Workerif $darwin; then
129*115816f9SAndroid Build Coastguard Worker    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
130*115816f9SAndroid Build Coastguard Workerfi
131*115816f9SAndroid Build Coastguard Worker
132*115816f9SAndroid Build Coastguard Worker# For Cygwin, switch paths to Windows format before running java
133*115816f9SAndroid Build Coastguard Workerif $cygwin ; then
134*115816f9SAndroid Build Coastguard Worker    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
135*115816f9SAndroid Build Coastguard Worker    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
136*115816f9SAndroid Build Coastguard Worker    JAVACMD=`cygpath --unix "$JAVACMD"`
137*115816f9SAndroid Build Coastguard Worker
138*115816f9SAndroid Build Coastguard Worker    # We build the pattern for arguments to be converted via cygpath
139*115816f9SAndroid Build Coastguard Worker    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
140*115816f9SAndroid Build Coastguard Worker    SEP=""
141*115816f9SAndroid Build Coastguard Worker    for dir in $ROOTDIRSRAW ; do
142*115816f9SAndroid Build Coastguard Worker        ROOTDIRS="$ROOTDIRS$SEP$dir"
143*115816f9SAndroid Build Coastguard Worker        SEP="|"
144*115816f9SAndroid Build Coastguard Worker    done
145*115816f9SAndroid Build Coastguard Worker    OURCYGPATTERN="(^($ROOTDIRS))"
146*115816f9SAndroid Build Coastguard Worker    # Add a user-defined pattern to the cygpath arguments
147*115816f9SAndroid Build Coastguard Worker    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
148*115816f9SAndroid Build Coastguard Worker        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
149*115816f9SAndroid Build Coastguard Worker    fi
150*115816f9SAndroid Build Coastguard Worker    # Now convert the arguments - kludge to limit ourselves to /bin/sh
151*115816f9SAndroid Build Coastguard Worker    i=0
152*115816f9SAndroid Build Coastguard Worker    for arg in "$@" ; do
153*115816f9SAndroid Build Coastguard Worker        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
154*115816f9SAndroid Build Coastguard Worker        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
155*115816f9SAndroid Build Coastguard Worker
156*115816f9SAndroid Build Coastguard Worker        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
157*115816f9SAndroid Build Coastguard Worker            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
158*115816f9SAndroid Build Coastguard Worker        else
159*115816f9SAndroid Build Coastguard Worker            eval `echo args$i`="\"$arg\""
160*115816f9SAndroid Build Coastguard Worker        fi
161*115816f9SAndroid Build Coastguard Worker        i=$((i+1))
162*115816f9SAndroid Build Coastguard Worker    done
163*115816f9SAndroid Build Coastguard Worker    case $i in
164*115816f9SAndroid Build Coastguard Worker        (0) set -- ;;
165*115816f9SAndroid Build Coastguard Worker        (1) set -- "$args0" ;;
166*115816f9SAndroid Build Coastguard Worker        (2) set -- "$args0" "$args1" ;;
167*115816f9SAndroid Build Coastguard Worker        (3) set -- "$args0" "$args1" "$args2" ;;
168*115816f9SAndroid Build Coastguard Worker        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
169*115816f9SAndroid Build Coastguard Worker        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
170*115816f9SAndroid Build Coastguard Worker        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
171*115816f9SAndroid Build Coastguard Worker        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
172*115816f9SAndroid Build Coastguard Worker        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
173*115816f9SAndroid Build Coastguard Worker        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
174*115816f9SAndroid Build Coastguard Worker    esac
175*115816f9SAndroid Build Coastguard Workerfi
176*115816f9SAndroid Build Coastguard Worker
177*115816f9SAndroid Build Coastguard Worker# Escape application args
178*115816f9SAndroid Build Coastguard Workersave () {
179*115816f9SAndroid Build Coastguard Worker    for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
180*115816f9SAndroid Build Coastguard Worker    echo " "
181*115816f9SAndroid Build Coastguard Worker}
182*115816f9SAndroid Build Coastguard WorkerAPP_ARGS=$(save "$@")
183*115816f9SAndroid Build Coastguard Worker
184*115816f9SAndroid Build Coastguard Worker# Collect all arguments for the java command, following the shell quoting and substitution rules
185*115816f9SAndroid Build Coastguard Workereval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
186*115816f9SAndroid Build Coastguard Worker
187*115816f9SAndroid Build Coastguard Worker# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
188*115816f9SAndroid Build Coastguard Workerif [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
189*115816f9SAndroid Build Coastguard Worker  cd "$(dirname "$0")"
190*115816f9SAndroid Build Coastguard Workerfi
191*115816f9SAndroid Build Coastguard Worker
192*115816f9SAndroid Build Coastguard Workerexec "$JAVACMD" "$@"
193