mirror of
https://github.com/ddnet/ddnet.git
synced 2024-11-18 05:58:19 +00:00
dc0d4b3b76
Define shortcuts to launch the client with either Vulkan or OpenGL graphics backend, which can be accessed by long-pressing the app icon on the home screen. This feature is available for Android 7.1 and newer.
90 lines
3 KiB
Bash
90 lines
3 KiB
Bash
#!/bin/bash
|
|
|
|
COLOR_RED="\e[1;31m"
|
|
COLOR_RESET="\e[0m"
|
|
|
|
if [ -z ${1+x} ]; then
|
|
printf "${COLOR_RED}%s${COLOR_RESET}\n" "Did not pass APK name to build script"
|
|
exit 1
|
|
fi
|
|
|
|
if [ -z ${2+x} ]; then
|
|
printf "${COLOR_RED}%s${COLOR_RESET}\n" "Did not pass package name to build script"
|
|
exit 1
|
|
fi
|
|
|
|
if [ -z ${3+x} ]; then
|
|
printf "${COLOR_RED}%s${COLOR_RESET}\n" "Did not pass build type to build script: Debug, Release"
|
|
exit 1
|
|
fi
|
|
|
|
APK_BASENAME="$1"
|
|
APK_PACKAGE_NAME="$2"
|
|
APK_BUILD_TYPE="$3"
|
|
|
|
if [[ "${APK_BUILD_TYPE}" == "Debug" ]]; then
|
|
RELEASE_TYPE_NAME=debug
|
|
elif [[ "${APK_BUILD_TYPE}" == "Release" ]]; then
|
|
RELEASE_TYPE_NAME=release
|
|
else
|
|
printf "${COLOR_RED}%s${COLOR_RESET}\n" "Did not pass build type to build script: Debug, Release"
|
|
exit 1
|
|
fi
|
|
|
|
APK_PACKAGE_FOLDER=$(echo "$APK_PACKAGE_NAME" | sed 's/\./\//g')
|
|
|
|
sed -i "s/DDNet/${APK_BASENAME}/g" settings.gradle
|
|
|
|
sed -i "s/org.ddnet.client/${APK_PACKAGE_NAME}/g" build.gradle
|
|
|
|
TW_KEY_NAME_ESCAPED=$(echo "$TW_KEY_NAME" | sed 's/\//\\\//g')
|
|
TW_KEY_PW_ESCAPED=$(echo "$TW_KEY_PW" | sed 's/\//\\\//g')
|
|
TW_KEY_ALIAS_ESCAPED=$(echo "$TW_KEY_ALIAS" | sed 's/\//\\\//g')
|
|
|
|
sed -i "s/TW_KEY_NAME/${TW_KEY_NAME_ESCAPED}/g" build.gradle
|
|
sed -i "s/TW_KEY_PW/${TW_KEY_PW_ESCAPED}/g" build.gradle
|
|
sed -i "s/TW_KEY_ALIAS/${TW_KEY_ALIAS_ESCAPED}/g" build.gradle
|
|
|
|
sed -i "s/TW_NDK_VERSION/${ANDROID_NDK_VERSION}/g" build.gradle
|
|
sed -i "s/TW_VERSION_CODE/${TW_VERSION_CODE}/g" build.gradle
|
|
sed -i "s/TW_VERSION_NAME/${TW_VERSION_NAME}/g" build.gradle
|
|
|
|
sed -i "s/DDNet/${APK_BASENAME}/g" src/main/res/values/strings.xml
|
|
|
|
sed -i "s/org.ddnet.client/${APK_PACKAGE_NAME}/g" src/main/res/xml/shortcuts.xml
|
|
|
|
sed -i "s/\"DDNet\"/\"${APK_BASENAME}\"/g" src/main/AndroidManifest.xml
|
|
sed -i "s/org.ddnet.client/${APK_PACKAGE_NAME}/g" src/main/AndroidManifest.xml
|
|
|
|
if [ "${APK_PACKAGE_FOLDER}" != "org/ddnet/client" ]; then
|
|
mv src/main/java/org/ddnet/client src/main/java/"${APK_PACKAGE_FOLDER}"
|
|
fi
|
|
|
|
sed -i "s/org.ddnet.client/${APK_PACKAGE_NAME}/g" src/main/java/"${APK_PACKAGE_FOLDER}"/NativeMain.java
|
|
sed -i "s/org.ddnet.client/${APK_PACKAGE_NAME}/g" proguard-rules.pro
|
|
|
|
# disable hid manager for now
|
|
sed -i "s/mHIDDeviceManager = HIDDeviceManager.acquire(this);/mHIDDeviceManager=null;/g" src/main/java/org/libsdl/app/SDLActivity.java
|
|
|
|
if [[ "${APK_BUILD_TYPE}" == "Debug" ]]; then
|
|
sed -i "s/android.enableR8.fullMode=true/android.enableR8.fullMode=false/g" gradle.properties
|
|
fi
|
|
|
|
function build_gradle() {
|
|
java "-Dorg.gradle.appname=Gradle" -classpath gradle-wrapper.jar org.gradle.wrapper.GradleWrapperMain --warning-mode all "$1"
|
|
}
|
|
|
|
if [[ "${APK_BUILD_TYPE}" == "Debug" ]]; then
|
|
build_gradle builddebug
|
|
build_gradle assembleDebug
|
|
else
|
|
build_gradle buildrelease
|
|
build_gradle assembleRelease
|
|
fi
|
|
cp build/outputs/apk/"$RELEASE_TYPE_NAME"/"$APK_BASENAME"-"$RELEASE_TYPE_NAME".apk "$APK_BASENAME".apk
|
|
|
|
if [[ "${APK_BUILD_TYPE}" == "Release" ]]; then
|
|
build_gradle bundleRelease
|
|
cp build/outputs/bundle/"$RELEASE_TYPE_NAME"/"$APK_BASENAME"-"$RELEASE_TYPE_NAME".aab "$APK_BASENAME".aab
|
|
fi
|