plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.compose.compiler)
alias(libs.plugins.android.rust)
}
android {
namespace = "{{ package_name }}"
compileSdk = 36
ndkVersion = "29.0.14206865"
defaultConfig {
applicationId = "{{ package_name }}"
minSdk = 26
targetSdk = 36
versionCode = 1
versionName = "1.0"
}
buildFeatures {
compose = true
}
buildTypes {
release {
isMinifyEnabled = true
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"))
proguardFiles("proguard-rules.pro")
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_21
targetCompatibility = JavaVersion.VERSION_21
}
kotlin {
jvmToolchain(21)
}
}
androidRust {
module("core") {
path = file("src/main/jni/core")
cargoClean = true
targets = listOf("arm64", "x86_64", "arm", "x86")
buildType("release") {
runTests = true
}
}
module("audio") {
path = file("src/main/jni/audio")
cargoClean = true
targets = listOf("arm64", "x86_64", "arm", "x86")
}
module("network") {
path = file("src/main/jni/network")
cargoClean = true
targets = listOf("arm64", "x86_64", "arm", "x86")
}
minimumSupportedRustVersion = "1.91.1"
}
dependencies {
implementation(platform(libs.androidx.compose.bom))
implementation(libs.androidx.core.ktx)
implementation(libs.androidx.appcompat)
implementation(libs.androidx.constraintlayout)
implementation(libs.google.material)
implementation(libs.androidx.compose.ui)
implementation(libs.androidx.compose.ui.graphics)
implementation(libs.androidx.compose.ui.tooling.preview)
implementation(libs.androidx.compose.material3)
implementation(libs.androidx.compose.foundation)
implementation(libs.androidx.compose.animation)
implementation(libs.androidx.activity.compose)
implementation(libs.androidx.lifecycle.runtime.compose)
debugImplementation(libs.androidx.compose.ui.tooling)
debugImplementation(libs.androidx.compose.ui.test.manifest)
}