import org.jetbrains.kotlin.gradle.targets.js.dsl.ExperimentalWasmDsl plugins { kotlin("multiplatform") id("com.android.library") id("org.jetbrains.compose") } kotlin { androidTarget { compilations.all { kotlinOptions { jvmTarget = "11" } } } jvm("desktop") listOf( iosX64(), iosArm64(), iosSimulatorArm64() ).forEach { iosTarget -> iosTarget.binaries.framework { baseName = "shared" isStatic = true } } js { browser { testTask(Action { enabled = false }) } binaries.executable() } @OptIn(ExperimentalWasmDsl::class) wasmJs { browser() binaries.executable() } listOf( macosX64(), macosArm64() ).forEach { macosTarget -> macosTarget.binaries { executable { entryPoint = "main" } } } sourceSets { all { languageSettings { optIn("org.jetbrains.compose.resources.ExperimentalResourceApi") } } commonMain.dependencies { implementation(compose.runtime) implementation(compose.material3) implementation(project(":resources:library")) } val desktopMain by getting desktopMain.dependencies { implementation(compose.desktop.common) } } } android { compileSdk = 34 namespace = "org.jetbrains.compose.resources.demo.shared" defaultConfig { minSdk = 21 } compileOptions { sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 } } compose.experimental { web.application {} } //because the dependency on the compose library is a project dependency compose.resources { generateResClass = always }