plugins { kotlin("multiplatform") id("org.jetbrains.compose") kotlin("plugin.serialization") id("com.android.application") } kotlin { androidTarget { compilations.all { kotlinOptions { jvmTarget = "17" } } } jvm("desktop") { compilations.all { kotlinOptions { jvmTarget = "17" } } } sourceSets { val commonMain by getting { dependencies { implementation(project(":common")) implementation(compose.runtime) implementation(compose.foundation) implementation(compose.material) implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.0") implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3") // Ktor client dependencies for WebSocket connection implementation("io.ktor:ktor-client-core:2.3.11") implementation("io.ktor:ktor-client-websockets:2.3.11") implementation("io.ktor:ktor-client-cio:2.3.11") implementation("io.ktor:ktor-client-content-negotiation:2.3.11") implementation("io.ktor:ktor-serialization-kotlinx-json:2.3.11") } } val desktopMain by getting { dependencies { implementation(compose.desktop.currentOs) } } val wearMain by creating { dependsOn(commonMain) } val androidMain by getting { dependsOn(wearMain) dependencies { implementation("androidx.activity:activity-compose:1.8.2") implementation(project(":tailscale-wearos-android")) } } } } android { namespace = "meatbag.client" compileSdk = 35 defaultConfig { applicationId = "meatbag.client" minSdk = 26 targetSdk = 34 versionCode = 1 versionName = "1.0.0" } compileOptions { sourceCompatibility = org.gradle.api.JavaVersion.VERSION_17 targetCompatibility = org.gradle.api.JavaVersion.VERSION_17 } } compose.desktop { application { mainClass = "meatbag.client.MainKt" nativeDistributions { targetFormats(org.jetbrains.compose.desktop.application.dsl.TargetFormat.Dmg) packageName = "meatbag-client" packageVersion = "1.0.0" } } }