import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi plugins { kotlin("multiplatform") id("com.android.library") id("org.jetbrains.compose") } kotlin { @OptIn(ExperimentalKotlinGradlePluginApi::class) targetHierarchy.default() 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() } listOf( macosX64(), macosArm64() ).forEach { macosTarget -> macosTarget.binaries { executable { entryPoint = "main" } } } sourceSets { val commonMain by getting { dependencies { implementation(compose.runtime) implementation(compose.material3) implementation(project(":ui-tooling-preview:library")) } } val desktopMain by getting { dependencies { implementation(compose.desktop.common) } } } } android { compileSdk = 34 namespace = "org.jetbrains.compose.ui.tooling.preview.demo.shared" defaultConfig { minSdk = 21 } compileOptions { sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 } } 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" }