plugins { id 'com.android.application' id 'org.jetbrains.kotlin.android' } android { namespace 'org.kenjinx.android' compileSdk 35 defaultConfig { applicationId "org.kenjinx.android" minSdk 30 targetSdk 34 versionCode 20004 versionName '2.0.4' testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" vectorDrawables { useSupportLibrary true } ndk { //noinspection ChromeOsAbiSupport abiFilters 'arm64-v8a' } externalNativeBuild { cmake { cppFlags "-std=c++17 -O3 -ffast-math -march=armv8-a -funroll-loops" arguments "-DANDROID_STL=c++_shared", "-DCMAKE_BUILD_TYPE=Release", "-DANDROID_ARM_NEON=TRUE" } } } buildTypes { release { postprocessing { removeUnusedCode false removeUnusedResources false obfuscate false optimizeCode true proguardFiles 'proguard-rules.pro' } signingConfig signingConfigs.debug debuggable false jniDebuggable false } } compileOptions { sourceCompatibility JavaVersion.VERSION_21 targetCompatibility JavaVersion.VERSION_21 } kotlinOptions { jvmTarget = '21' freeCompilerArgs += ["-Xopt-in=kotlin.RequiresOptIn", "-Xallow-jvm-ir-dependencies"] } buildFeatures { compose true prefab true buildConfig true } composeOptions { kotlinCompilerExtensionVersion '1.5.13' } packagingOptions { jniLibs { keepDebugSymbols += '**/libkenjinx.so' useLegacyPackaging true } resources { excludes += '/META-INF/{AL2.0,LGPL2.1}' } } externalNativeBuild { cmake { path file('src/main/cpp/CMakeLists.txt') version '3.22.1' } } sourceSets { main { jniLibs.srcDirs = ['src/main/extLibs', 'src/main/jniLibs'] } } } tasks.named("preBuild") { dependsOn ':libkenjinx:assemble' } dependencies { runtimeOnly project(":libkenjinx") implementation 'androidx.activity:activity-compose:1.10.1' implementation 'androidx.appcompat:appcompat:1.7.0' implementation 'androidx.compose.material3:material3' implementation 'androidx.compose.material:material-icons-extended:1.7.8' implementation 'androidx.compose.ui:ui' implementation 'androidx.compose.ui:ui-graphics' implementation 'androidx.compose.ui:ui-tooling-preview' implementation 'androidx.constraintlayout:constraintlayout:2.2.1' implementation 'androidx.core:core-ktx:1.16.0' implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.9.0' implementation 'androidx.navigation:navigation-compose:2.9.0' implementation 'androidx.preference:preference-ktx:1.2.1' implementation 'br.com.devsrsouza.compose.icons:css-gg:1.1.1' implementation 'com.anggrayudi:storage:1.5.6' implementation 'com.github.swordfish90:radialgamepad:2.0.0' implementation 'com.google.android.material:material:1.12.0' implementation 'com.google.code.gson:gson:2.11.0' implementation 'com.halilibo.compose-richtext:richtext-commonmark:0.20.0' implementation 'com.halilibo.compose-richtext:richtext-ui-material3:0.20.0' implementation 'com.halilibo.compose-richtext:richtext-ui:0.20.0' implementation 'io.coil-kt:coil-compose:2.6.0' implementation 'net.java.dev.jna:jna:5.17.0@aar' implementation 'net.lingala.zip4j:zip4j:2.11.5' implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.0' implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.0' implementation platform('androidx.compose:compose-bom:2024.08.00') implementation platform('org.jetbrains.kotlin:kotlin-bom:1.9.24') androidTestImplementation 'androidx.compose.ui:ui-test-junit4' androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1' androidTestImplementation 'androidx.test.ext:junit:1.2.1' androidTestImplementation platform('androidx.compose:compose-bom:2024.08.00') testImplementation 'junit:junit:4.13.2' debugImplementation 'androidx.compose.ui:ui-test-manifest' debugImplementation 'androidx.compose.ui:ui-tooling' }