import org.jetbrains.kotlin.gradle.dsl.JvmTarget plugins { alias(libs.plugins.kotlin.multiplatform) alias(libs.plugins.android.library) alias(libs.plugins.kotlin.serialization) } java { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } kotlin { targets.configureEach { compilations.configureEach { compileTaskProvider.configure { compilerOptions { freeCompilerArgs.add("-Xexpect-actual-classes") } } } } androidTarget { compilerOptions { jvmTarget.set(JvmTarget.JVM_17) } } jvm() listOf( iosX64(), iosArm64(), iosSimulatorArm64() ).forEach { iosTarget -> iosTarget.binaries.framework { baseName = "MCP" isStatic = true } } sourceSets { all { languageSettings { optIn("kotlin.time.ExperimentalTime") } } commonMain.dependencies { api(libs.modelcontextprotocol.core) implementation(libs.modelcontextprotocol.client) implementation(libs.serialization) implementation(libs.kotlinx.datetime) implementation(libs.kermit) implementation(libs.ktor.client.core) implementation(libs.ktor.client.contentNegotiation) implementation(libs.ktor.client.serialization.json) implementation(libs.ktor.client.logging) } androidMain.dependencies { implementation(libs.ktor.client.okhttp) } jvmTest.dependencies { implementation(libs.kotlin.test.junit) implementation(libs.modelcontextprotocol.server) implementation(libs.ktor.server.core) implementation(libs.ktor.server.netty) implementation(libs.ktor.client.okhttp) } } } android { namespace = "coredevices.mcp" compileSdk = libs.versions.android.compileSdk.get().toInt() defaultConfig { minSdk = libs.versions.android.minSdk.get().toInt() consumerProguardFiles("proguard-rules.pro") } compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } }