import org.jetbrains.compose.desktop.application.dsl.TargetFormat import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi import org.jetbrains.kotlin.gradle.dsl.JvmTarget plugins { alias(libs.plugins.kotlinMultiplatform) alias(libs.plugins.androidApplication) alias(libs.plugins.composeMultiplatform) alias(libs.plugins.composeCompiler) id("com.google.devtools.ksp") id("kotlin-parcelize") } kotlin { androidTarget { @OptIn(ExperimentalKotlinGradlePluginApi::class) compilerOptions { jvmTarget.set(JvmTarget.JVM_11) } } listOf( iosArm64(), ).forEach { iosTarget -> iosTarget.binaries.framework { baseName = "ComposeApp" isStatic = true } iosTarget.compilations.getByName("main"){ val cin by cinterops.creating{ definitionFile.set(project.file("Ring.def")) packageName("com.whitefish.app.objc") val files = project.fileTree("../iosApp/iosApp/Libs").files.filter { it.extension == "h" } headers(files) val links = files.map { "-I${it.parent}" }.distinct() compilerOpts(links) logger.warn("headers:${headers.files}") logger.warn("opts:${compilerOpts}") } } } sourceSets { androidMain.dependencies { implementation(compose.preview) implementation(libs.androidx.activity.compose) } commonMain.dependencies { implementation(compose.runtime) implementation(compose.foundation) implementation(compose.material3) implementation(compose.ui) implementation(compose.components.resources) implementation(compose.components.uiToolingPreview) implementation(libs.androidx.lifecycle.viewmodel) implementation(libs.androidx.lifecycle.runtimeCompose) implementation(libs.lifecycle.viewmodel.compose) implementation(libs.vico.multiplatform) } commonTest.dependencies { implementation(libs.kotlin.test) } } } android { namespace = "com.whitefish.app" compileSdk = 35 defaultConfig { applicationId = "com.whitefish.app" minSdk = 27 targetSdk = 35 versionCode = 1 versionName = "1.0" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } signingConfigs { create("release") { storeFile = file("keystore.jks") storePassword = "smart_ring" keyAlias = "ring" keyPassword = "smart_ring" } } buildFeatures { dataBinding = true compose = true } compileOptions { sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 } buildTypes { debug { signingConfig = signingConfigs.findByName("release") } release { isMinifyEnabled = true signingConfig = signingConfigs.findByName("release") proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) } } dependencies { implementation(libs.androidx.room.runtime) ksp(libs.androidx.room.compiler) implementation("com.github.ome450901:SimpleRatingBar:1.5.1") implementation(libs.androidx.core.ktx) implementation(libs.androidx.appcompat) implementation(libs.material) implementation(libs.androidx.room.ktx) implementation("com.google.code.gson:gson:2.10.1") testImplementation(libs.junit) androidTestImplementation(libs.androidx.junit) androidTestImplementation(libs.androidx.espresso.core) implementation(libs.immersionbar) implementation(libs.immersionbar.ktx) implementation(libs.glide) implementation(libs.shadowLayout) implementation(libs.mpandroidchart) implementation(libs.androidx.fragment.ktx) implementation(libs.flexbox) implementation(libs.utilcodex) implementation(libs.logger) implementation(fileTree("libs")) implementation(project(":ecgAlgo")) implementation(libs.android.database.sqlcipher) debugImplementation(compose.uiTooling) } }