otclient-redemption/android/app/build.gradle.kts
kokekanon 6a478408ee
ci: build apk android with github actions (#1715)
New Features:
- Added scrollable areas to general options, action bar settings, and game panel controls for improved navigation on compact displays.
- Integrated Android APK build automation into the CI pipeline.

Chores:
- Enhanced build system to support flexible Android architecture configuration during automated builds.
2026-05-12 20:47:00 -03:00

96 lines
2.7 KiB
Kotlin

plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
}
val ciAbiFilters = providers.gradleProperty("otclient.android.abis")
.orElse(providers.environmentVariable("OTCLIENT_ANDROID_ABIS"))
.orNull
?.split(",")
?.map { it.trim() }
?.filter { it.isNotEmpty() }
?: listOf("arm64-v8a", "armeabi-v7a", "x86_64", "x86")
android {
namespace = "com.github.otclient"
compileSdk = 36
defaultConfig {
applicationId = "com.github.otclient"
minSdk = 21
targetSdk = 36
versionCode = 1
versionName = "1.0"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
ndk {
abiFilters += ciAbiFilters
}
externalNativeBuild {
cmake {
cppFlags += listOf("-std=c++20")
arguments += listOf(
"-DVCPKG_TARGET_ANDROID=ON",
"-DANDROID_STL=c++_shared",
"-DVCPKG_MANIFEST_INSTALL=ON",
"-DVCPKG_INSTALL_OPTIONS=--allow-unsupported"
)
}
}
}
signingConfigs {
create("release") {
// Use env vars for CI/production, fallback to debug keystore for local dev
storeFile = file(System.getenv("RELEASE_KEYSTORE")
?: System.getProperty("user.home") + "/.android/debug.keystore")
storePassword = System.getenv("RELEASE_KEYSTORE_PASSWORD") ?: "android"
keyAlias = System.getenv("RELEASE_KEY_ALIAS") ?: "androiddebugkey"
keyPassword = System.getenv("RELEASE_KEY_PASSWORD") ?: "android"
}
}
externalNativeBuild {
cmake {
path = file("../../CMakeLists.txt")
version = "3.22.1"
}
}
buildTypes {
getByName("release") {
isMinifyEnabled = false
isShrinkResources = false
signingConfig = signingConfigs.getByName("release")
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
file("proguard-rules.pro")
)
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = "17"
}
buildFeatures {
viewBinding = true
prefab = true
}
ndkVersion = "29.0.13599879"
}
dependencies {
implementation("androidx.core:core-ktx:1.17.0")
implementation("androidx.appcompat:appcompat:1.7.1")
implementation("androidx.games:games-activity:1.2.1")
implementation("com.google.android.material:material:1.13.0")
}