blob: cae82720a4dd008e75a9588849df0968992959b9 [file] [log] [blame]
#!/bin/bash
# Expected arguments:
# $1 = out_dir
# $2 = dist_dir
# $3 = build_number
# exit on error
set -e
PROG_DIR=$(dirname "$0")
function die() {
echo "$*" > /dev/stderr
echo "Usage: $0 [<out_dir> [<dist_dir> [<build_number>]]] [--enable-aswb]" > /dev/stderr
exit 1
}
function set_java_home() {
case `uname -s` in
MINGW64_NT-10.0)
export JAVA_HOME=../../prebuilts/studio/jdk/win64
;;
CYGWIN_NT-10.0)
export JAVA_HOME=../../prebuilts/studio/jdk/win64
;;
Darwin)
export JAVA_HOME=../../prebuilts/studio/jdk/mac/Contents/Home
;;
*)
export JAVA_HOME=../../prebuilts/studio/jdk/linux
;;
esac
}
function get_absolute_path() {
( unset CDPATH; cd "$1" && pwd ) 2> /dev/null
}
ASWB=
ASWB_PROPERTY=
UITESTS=false
while [[ -n "$1" ]]; do
if [[ $1 == "--enable-aswb" ]]; then
ASWB=true
ASWB_PROPERTY="-Dinclude.aswb=true"
elif [[ $1 == "--uitests" ]]; then
UITESTS=true
elif [[ -z "$OUT" ]]; then
OUT="$1"
elif [[ -z "$DIST" ]]; then
DIST="$1"
elif [[ -z "$BNUM" ]]; then
BNUM="${1/P/-}" # for AB presubmit: satisfy Integer.parseInt in BuildNumber.parseBuildNumber
else
die "[$0] Unknown parameter: $1"
fi
shift
done
# Set defaults for OUT, DIST, BNUM if necessary
[[ -z "$OUT" ]] && OUT="out/studio"
[[ -z "$DIST" ]] && DIST="$OUT/dist"
[[ -z "$BNUM" ]] && BNUM=SNAPSHOT
cd "$PROG_DIR"
mkdir -p "$OUT"
mkdir -p "$DIST"
# ensure OUT and DIST are absolute paths
OUT="$(get_absolute_path "$OUT")"
DIST="$(get_absolute_path "$DIST")"
ANT="java -jar lib/ant/lib/ant-launcher.jar -f build.xml"
echo "## Building android-studio ##"
echo "## Dist dir : $DIST"
echo "## Qualifier: $QUAL"
echo "## Build Num: $BNUM"
echo "## Out dir : $OUT"
echo "## Prog dir : $PROG_DIR"
echo "## ASWB? : $ASWB"
echo "## UITESTS? : $UITESTS"
echo
set_java_home
export JDK_16_x64=$JAVA_HOME
export JDK_18_x64=$JAVA_HOME
echo "## JAVA_HOME: $JAVA_HOME"
export PATH=$JDK_18_x64/bin:$PATH
$ANT "-Dintellij.build.output.root=$OUT" "-Dbuild.number=$BNUM" "$ASWB_PROPERTY" "-Dbundle.ui.tests=$UITESTS" -Dbundle.gradle.release.plugin=true build
$ANT "-Dintellij.build.output.root=$OUT/updater" fullupdater
echo "## Copying android-studio distribution files"
mkdir -p "$DIST"
if [ "$ASWB" = true ]; then
cp -Rfv "$OUT"/artifacts/aswb* "$DIST"
else
cp -Rfv "$OUT"/artifacts/android-studio* "$DIST"
cp -Rfv "$OUT"/updater/artifacts/updater-full.jar "$DIST"/android-studio-updater.jar
cp -Rfv "$OUT"/updater/artifacts/sdk-patcher.zip "$DIST"/sdk-patcher.zip
# write the version number into the windows installer dir
echo $BNUM > ../adt/idea/native/installer/win/version
(cd ../adt/idea/native/installer/win && zip -r - ".") > "$DIST"/android-studio-bundle-data.zip
fi