import org.jetbrains.kotlin.gradle.plugin.mpp.apple.XCFramework plugins { alias(libs.plugins.kotlin.multiplatform) alias(libs.plugins.android.library) alias(libs.plugins.compose.multiplatform) alias(libs.plugins.compose.compiler) `maven-publish` } group = "dev.dtrentin" version = "0.5.0-SNAPSHOT" kotlin { applyDefaultHierarchyTemplate() explicitApi() androidTarget { compilations.all { compileTaskProvider.configure { compilerOptions { jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17) } } } publishLibraryVariants("release") } val xcf = XCFramework("ChartRealtime") listOf( iosX64(), iosArm64(), iosSimulatorArm64() ).forEach { target -> target.binaries.framework { baseName = "ChartRealtime" xcf.add(this) } } sourceSets { commonMain.dependencies { implementation(compose.runtime) implementation(compose.ui) implementation(compose.foundation) implementation(compose.material3) implementation(libs.coroutines.core) implementation(libs.kotlinx.datetime) } androidMain.dependencies { implementation(libs.androidx.core) } commonTest.dependencies { implementation(libs.kotlin.test) } } } android { namespace = "dev.dtrentin.chart" compileSdk = 35 defaultConfig { minSdk = 26 } compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } } publishing { // KMP plugin auto-creates per-target publications. // Run: ./gradlew publishToMavenLocal publications.withType().configureEach { pom { name.set("chart-realtime") description.set("KMP real-time line chart for high-frequency sensor data (200Hz+ multi-signal, bounded memory).") url.set("https://github.com/davide-trentin/KMPCharts") licenses { license { name.set("MIT License") url.set("https://opensource.org/licenses/MIT") distribution.set("repo") } } developers { developer { id.set("dtrentin") name.set("Davide Trentin") } } } } }