import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension import org.jetbrains.compose.compose import org.jetbrains.compose.desktop.application.dsl.TargetFormat plugins { kotlin("multiplatform") version "1.5.31" id("org.jetbrains.compose") version "1.0.0-beta5" } version = "1.0-SNAPSHOT" repositories { mavenCentral() maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") google() } kotlin { jvm() js(IR) { browser() binaries.executable() } sourceSets { val commonMain by getting { dependencies { implementation(kotlin("stdlib-common")) implementation(compose.web.widgets) implementation(compose.runtime) } } val jvmMain by getting { dependencies { implementation(compose.desktop.currentOs) } } val commonTest by getting { dependencies { implementation(kotlin("test-common")) implementation(kotlin("test-annotations-common")) } } } } compose.desktop { application { mainClass = "org.jetbrains.compose.common.demo.AppKt" nativeDistributions { targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb) packageName = "ImageViewer" packageVersion = "1.0.0" modules("jdk.crypto.ec") val iconsRoot = project.file("../common/src/desktopMain/resources/images") macOS { iconFile.set(iconsRoot.resolve("icon-mac.icns")) } windows { iconFile.set(iconsRoot.resolve("icon-windows.ico")) menuGroup = "Compose Examples" // see https://wixtoolset.org/documentation/manual/v3/howtos/general/generate_guids.html upgradeUuid = "18159995-d967-4CD2-8885-77BFA97CFA9F" } linux { iconFile.set(iconsRoot.resolve("icon-linux.png")) } } } } // a temporary workaround for a bug in jsRun invocation - see https://youtrack.jetbrains.com/issue/KT-48273 afterEvaluate { rootProject.extensions.configure { versions.webpackDevServer.version = "4.0.0" versions.webpackCli.version = "4.9.0" } }