104 lines
4.1 KiB
Groovy
104 lines
4.1 KiB
Groovy
apply plugin: 'com.android.application'
|
|
|
|
android {
|
|
namespace 'com.shatteredpixel.shatteredpixeldungeon.android'
|
|
compileSdk appAndroidCompileSDK
|
|
compileOptions.sourceCompatibility = compileOptions.targetCompatibility = appJavaCompatibility
|
|
|
|
sourceSets.main.assets.srcDirs = [new File(project(':core').projectDir, "/src/main/assets")]
|
|
|
|
defaultConfig {
|
|
manifestPlaceholders = [appName:appName]
|
|
applicationId appPackageName
|
|
|
|
versionCode appVersionCode
|
|
versionName appVersionName
|
|
|
|
//noinspection MinSdkTooLow
|
|
minSdkVersion appAndroidMinSDK
|
|
targetSdkVersion appAndroidTargetSDK
|
|
resourceConfigurations += ['en_US', 'cs', 'de', 'el', 'es', 'fr', 'hu', 'in', 'it', 'ja', 'ko', 'nl', 'pl', 'pt', 'ru', 'tr', 'uk', 'vi', 'zh_CN']
|
|
|
|
}
|
|
|
|
buildTypes {
|
|
debug {
|
|
applicationIdSuffix ".indev"
|
|
versionNameSuffix '-INDEV'
|
|
dependencies {
|
|
debugImplementation project(':services:updates:debugUpdates')
|
|
debugImplementation project(':services:news:debugNews')
|
|
}
|
|
}
|
|
release {
|
|
|
|
//These lines enable R8, which is a code shrinker/optimizer/obfuscator.
|
|
//This makes release APKs smaller and more efficient, but also makes debugging trickier
|
|
//as the information produced in stack traces must be de-obfuscated.
|
|
//See here: https://developer.android.com/studio/build/shrink-code#decode-stack-trace
|
|
shrinkResources true
|
|
minifyEnabled true
|
|
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
|
|
|
dependencies {
|
|
releaseImplementation project(':services:updates:githubUpdates')
|
|
releaseImplementation project(':services:news:shatteredNews')
|
|
}
|
|
}
|
|
}
|
|
|
|
sourceSets {
|
|
main {
|
|
jniLibs.srcDirs = ['libs']
|
|
}
|
|
}
|
|
}
|
|
|
|
configurations { natives }
|
|
|
|
dependencies {
|
|
implementation project(':core')
|
|
|
|
implementation "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion"
|
|
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi-v7a"
|
|
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86"
|
|
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-arm64-v8a"
|
|
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86_64"
|
|
implementation "com.badlogicgames.gdx:gdx-freetype:$gdxVersion"
|
|
natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-armeabi-v7a"
|
|
natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-arm64-v8a"
|
|
natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-x86"
|
|
natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-x86_64"
|
|
implementation "com.badlogicgames.gdx-controllers:gdx-controllers-android:$gdxControllersVersion"
|
|
}
|
|
|
|
// called every time gradle gets executed, takes the native dependencies of
|
|
// the natives configuration, and extracts them to the proper libs/ folders
|
|
// so they get packed with the APK.
|
|
task copyAndroidNatives() {
|
|
doFirst {
|
|
file("libs/armeabi-v7a/").mkdirs()
|
|
file("libs/arm64-v8a/").mkdirs()
|
|
file("libs/x86/").mkdirs()
|
|
file("libs/x86_64/").mkdirs()
|
|
|
|
configurations.natives.copy().files.each { jar ->
|
|
def outputDir = null
|
|
if (jar.name.endsWith("natives-armeabi-v7a.jar")) outputDir = file("libs/armeabi-v7a")
|
|
if (jar.name.endsWith("natives-arm64-v8a.jar")) outputDir = file("libs/arm64-v8a")
|
|
if (jar.name.endsWith("natives-x86.jar")) outputDir = file("libs/x86")
|
|
if (jar.name.endsWith("natives-x86_64.jar")) outputDir = file("libs/x86_64")
|
|
if (outputDir != null) {
|
|
copy {
|
|
from zipTree(jar)
|
|
into outputDir
|
|
include "*.so"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
tasks.matching { it.name.contains("merge") && it.name.contains("JniLibFolders") }.configureEach { packageTask ->
|
|
packageTask.dependsOn 'copyAndroidNatives'
|
|
} |