plugins { kotlin("multiplatform") id("com.android.library") id("org.jetbrains.compose") } version = "1.0-SNAPSHOT" kotlin { android() jvm("desktop") listOf( iosX64(), iosArm64(), iosSimulatorArm64() ).forEach { iosTarget -> iosTarget.binaries.framework { baseName = "shared" isStatic = true } } js(IR) { browser() binaries.executable() } macosX64 { binaries { executable { entryPoint = "main" } } } macosArm64 { binaries { executable { entryPoint = "main" } } } sourceSets { val commonMain by getting { dependencies { implementation(compose.ui) implementation(compose.foundation) implementation(compose.material) implementation(compose.runtime) implementation(project(":resources:library")) } } val iosMain by creating { dependsOn(commonMain) } val iosTest by creating { } val iosX64Main by getting { dependsOn(iosMain) } val iosArm64Main by getting { dependsOn(iosMain) } val iosSimulatorArm64Main by getting { dependsOn(iosMain) } val iosX64Test by getting { dependsOn(iosMain) } val iosArm64Test by getting { dependsOn(iosMain) } val iosSimulatorArm64Test by getting { dependsOn(iosMain) } val desktopMain by getting { dependencies { implementation(compose.desktop.common) } } val macosMain by creating { dependsOn(commonMain) } val macosX64Main by getting { dependsOn(macosMain) } val macosArm64Main by getting { dependsOn(macosMain) } } } android { compileSdk = 33 sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml") defaultConfig { minSdk = 21 targetSdk = 33 } compileOptions { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } sourceSets { named("main") { resources.srcDir("src/commonMain/resources") } } } compose.experimental { web.application {} } // TODO: remove this block after we update on a newer kotlin. Currently there is an error: `error:0308010C:digital envelope routines::unsupported` rootProject.plugins.withType { rootProject.the().nodeVersion = "16.0.0" }