import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi import org.jetbrains.kotlin.gradle.dsl.JvmTarget plugins { alias(libs.plugins.kotlinMultiplatform) alias(libs.plugins.kotlinSerialization) alias(libs.plugins.androidApplication) alias(libs.plugins.composeMultiplatform) alias(libs.plugins.composeCompiler) alias(libs.plugins.secretsGradle) } kotlin { androidTarget { @OptIn(ExperimentalKotlinGradlePluginApi::class) compilerOptions { jvmTarget.set(JvmTarget.JVM_11) } } compilerOptions { freeCompilerArgs.add("-opt-in=kotlin.time.ExperimentalTime") } listOf( // iosX64(), iosArm64(), iosSimulatorArm64() ).forEach { iosTarget -> iosTarget.binaries.framework { baseName = "ComposeApp" isStatic = true } } sourceSets { androidMain.dependencies { implementation(libs.compose.ui.tooling.preview) implementation(libs.androidx.activity.compose) implementation(libs.kotlinx.coroutines.android) implementation(libs.play.services.location) } commonMain.dependencies { implementation(libs.compose.components.resources) implementation(libs.compose.runtime) implementation(libs.compose.foundation) implementation(libs.compose.material.icons.core) // TODO: move to symbols implementation(libs.compose.material3) implementation(libs.compose.ui) implementation(libs.compose.ui.tooling.preview) implementation(libs.composeunstyled) implementation(libs.androidx.lifecycle.viewmodel) implementation(libs.androidx.lifecycle.viewmodel.compose) implementation(libs.androidx.lifecycle.runtime.compose) implementation(libs.koin.compose) implementation(libs.koin.compose.viewmodel) implementation(libs.kotlinx.coroutines.core) implementation(libs.kotlinx.datetime) implementation(libs.ktor.client.core) implementation(libs.ktor.client.contentnegotiation) implementation(libs.ktor.serialization.kotlinx.json) implementation(libs.maplibre.compose) implementation(libs.moko.geo) implementation(libs.moko.geo.compose) implementation(projects.shared) implementation(libs.ui.backhandler) } } } android { namespace = "moe.lava.banksia" compileSdk = libs.versions.android.compileSdk.get().toInt() defaultConfig { applicationId = "moe.lava.banksia" minSdk = libs.versions.android.minSdk.get().toInt() targetSdk = libs.versions.android.targetSdk.get().toInt() versionCode = 1 versionName = "1.0" } packaging { resources { excludes += "/META-INF/{AL2.0,LGPL2.1}" } } buildTypes { getByName("release") { isMinifyEnabled = false signingConfig = signingConfigs.getByName("debug") } } compileOptions { sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 } } dependencies { debugImplementation(compose.uiTooling) } secrets { propertiesFileName = "secrets.properties" } compose.resources { publicResClass = true packageOfResClass = "moe.lava.banksia.resources" }