2021-02-03 14:18:15 -04:00
#!/usr/bin/env bash
PLATFORMS_VERSION=${1:-}
BUILDTOOLS_VERSION=${2:-}
CMAKE_VERSION=${3:-}
NDK_VERSION=${4:-}
ARG5=${5:-}
pausefunc()
{
read -rsp $'Press any key to continue...\n' -n1 key
}
2022-09-19 06:18:34 -04:00
# $1 parameter should be the profile file: .bash_profile as it is read by UE and .zprofile if default shell is zsh
updateProfileFileFunc()
{
if ! grep -q "export ANDROID_HOME=\"$STUDIO_SDK_PATH\"" "$1"
then
echo >> "$1"
echo "export ANDROID_HOME=\"$STUDIO_SDK_PATH\"" >> "$1"
fi
2022-10-18 00:54:48 -04:00
if ! grep -q "export ANDROID_SDK_HOME=\"$STUDIO_SDK_PATH\"" "$1"
then
echo >> "$1"
echo "export ANDROID_SDK_HOME=\"$STUDIO_SDK_PATH\"" >> "$1"
fi
2022-09-19 06:18:34 -04:00
if ! grep -q "export JAVA_HOME=\"$JAVA_HOME\"" "$1"
then
echo >> $1
echo "export JAVA_HOME=\"$JAVA_HOME\"" >> "$1"
fi
if [ "$adbPath" == "" ]; then
if ! grep -q "export PATH=\"\$PATH:$PLATFORMTOOLS\"" "$1"
then
echo >> "$1"
echo export PATH="\"\$PATH:$PLATFORMTOOLS\"" >> "$1"
echo Added $PLATFORMTOOLS to PATH in $1
fi
fi
if ! grep -q "export NDKROOT=\"$NDKINSTALLPATH\"" "$1"
then
echo >> "$1"
echo "export NDKROOT=\"$NDKINSTALLPATH\"" >> "$1"
echo "export NDK_ROOT=\"$NDKINSTALLPATH\"" >> "$1"
fi
}
2021-02-03 14:18:15 -04:00
if [[ ${ARG5} == "-noninteractive" ]]; then
PAUSE=
else
PAUSE="pausefunc"
fi
2022-09-19 06:18:34 -04:00
# hardcoded versions for compatibility with non-Turnkey manual running
2021-02-03 14:18:15 -04:00
if [[ -z "${PLATFORMS_VERSION}" ]]; then
2022-10-11 23:32:22 -04:00
PLATFORMS_VERSION="android-32"
2021-02-03 14:18:15 -04:00
fi
if [[ -z "${BUILDTOOLS_VERSION}" ]]; then
2022-02-08 09:46:18 -05:00
BUILDTOOLS_VERSION="30.0.3"
2021-02-03 14:18:15 -04:00
fi
if [[ -z "${CMAKE_VERSION}" ]]; then
CMAKE_VERSION="3.10.2.4988404"
fi
if [[ -z "${NDK_VERSION}" ]]; then
2022-10-11 23:32:22 -04:00
NDK_VERSION="25.1.8937393"
2021-02-03 14:18:15 -04:00
fi
2020-02-22 18:13:58 -05:00
2022-10-26 17:31:02 -04:00
STUDIO_PATH="$HOME/Applications/Android Studio.app"
2020-02-22 18:13:58 -05:00
if [ ! -x "$STUDIO_PATH" ]; then
STUDIO_PATH="/Applications/Android Studio.app"
if [ ! -x "$STUDIO_PATH" ]; then
2022-10-26 17:31:02 -04:00
echo Android Studio not installed, please download Android Studio 4.0.2 from https://developer.android.com/studio
2021-02-03 14:18:15 -04:00
${PAUSE}
2020-02-22 18:13:58 -05:00
exit 1
fi
fi
echo Android Studio Path: $STUDIO_PATH
if [ "$STUDIO_SDK_PATH" == "" ]; then
2020-04-22 16:21:18 -04:00
STUDIO_SDK_PATH=~/Library/Android/sdk
2020-02-22 18:13:58 -05:00
fi
if [ ! -d "$STUDIO_SDK_PATH" ]; then
echo Android SDK not found at: $STUDIO_SDK_PATH
echo Unable to locate local Android SDK location. Did you run Android Studio after installing?
2022-10-26 17:31:02 -04:00
echo If Android Studio is installed, please run again with SDK path as parameter, otherwise download Android Studio 4.0.2 from https://developer.android.com/studio
2021-02-03 14:18:15 -04:00
${PAUSE}
2020-02-22 18:13:58 -05:00
exit 1
fi
echo Android Studio SDK Path: $STUDIO_SDK_PATH
export JAVA_HOME="$STUDIO_PATH/Contents/jre/jdk/Contents/Home"
2021-02-03 14:18:15 -04:00
NDKINSTALLPATH="$STUDIO_SDK_PATH/ndk/${NDK_VERSION}"
2021-03-01 11:16:43 -04:00
PLATFORMTOOLS="$STUDIO_SDK_PATH/platform-tools:$STUDIO_SDK_PATH/build-tools/${BUILDTOOLS_VERSION}:$STUDIO_SDK_PATH/tools/bin"
2022-09-19 06:18:34 -04:00
adbPath=$(type -P "adb")
2023-04-06 02:27:49 -04:00
SDKMANAGERPATH="$STUDIO_SDK_PATH/cmdline-tools/8.0/bin"
2020-04-18 16:05:38 -04:00
if [ ! -d "$SDKMANAGERPATH" ]; then
2022-10-18 00:54:48 -04:00
SDKMANAGERPATH="$STUDIO_SDK_PATH/tools/bin"
2020-04-18 16:05:38 -04:00
if [ ! -d "$SDKMANAGERPATH" ]; then
2020-04-22 13:40:04 -04:00
echo Unable to locate sdkmanager. Did you run Android Studio and install cmdline-tools after installing?
2021-02-03 14:18:15 -04:00
${PAUSE}
2020-04-18 16:05:38 -04:00
exit 1
fi
fi
2021-02-03 14:18:15 -04:00
"$SDKMANAGERPATH/sdkmanager" "platform-tools" "platforms;${PLATFORMS_VERSION}" "build-tools;${BUILDTOOLS_VERSION}" "cmake;${CMAKE_VERSION}" "ndk;${NDK_VERSION}"
2020-02-22 18:13:58 -05:00
retVal=$?
if [ $retVal -ne 0 ]; then
echo Update failed. Please check the Android Studio install.
2021-02-03 14:18:15 -04:00
${PAUSE}
2020-02-22 18:13:58 -05:00
exit $retVal
fi
if [ ! -d "$STUDIO_SDK_PATH/platform-tools" ]; then
retVal=1
fi
2021-02-03 14:18:15 -04:00
if [ ! -d "$STUDIO_SDK_PATH/platforms/${PLATFORMS_VERSION}" ]; then
2020-02-22 18:13:58 -05:00
retVal=1
fi
2021-02-03 14:18:15 -04:00
if [ ! -d "$STUDIO_SDK_PATH/build-tools/${BUILDTOOLS_VERSION}" ]; then
2020-02-22 18:13:58 -05:00
retVal=1
fi
if [ ! -d "$NDKINSTALLPATH" ]; then
retVal=1
fi
if [ $retVal -ne 0 ]; then
echo Update failed. Did you accept the license agreement?
2021-02-03 14:18:15 -04:00
${PAUSE}
2020-02-22 18:13:58 -05:00
exit $retVal
fi
2022-09-19 06:18:34 -04:00
# on zsh, ~/.bash_profile may not exist
if [ ! -f ~/.bash_profile ]; then
echo > ~/.bash_profile
fi
updateProfileFileFunc ~/.bash_profile
# on zsh, update .zprofile and create .bash_profile (as UE reads it)
if [ $SHELL == "/bin/zsh" ]; then
updateProfileFileFunc ~/.zprofile
echo Adding UE Android dev env variables to .zprofile
2020-02-22 18:13:58 -05:00
fi
2022-09-19 06:18:34 -04:00
echo Success!
exit 0