mirror of
https://github.com/ddnet/ddnet.git
synced 2024-11-10 01:58:19 +00:00
1dd56f1a90
Gradle can determine the NDK version automatically and this property is only required if multiple NDK versions are installed. The NDK version previously determined from the filename could not be parsed by Gradle anyway.
89 lines
2.9 KiB
Bash
89 lines
2.9 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_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
|