mirror of
https://github.com/mehah/otclient
synced 2026-08-15 16:29:06 -04:00
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.
96 lines
2.7 KiB
Kotlin
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")
|
|
}
|