import org.jetbrains.compose.desktop.application.dsl.TargetFormat plugins { kotlin("jvm") id("org.jetbrains.compose") kotlin("plugin.serialization") version "1.9.0" } group = "org.cookiestudios" version = "1.0-SNAPSHOT" repositories { mavenCentral() maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") google() } dependencies { // Note, if you develop a library, you should use compose.desktop.common. // compose.desktop.currentOs should be used in launcher-sourceSet // (in a separate module for demo project and in testMain). // With compose.desktop.common you will also lose @Preview functionality implementation(compose.desktop.currentOs) implementation(compose.material3) implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.1") } compose.desktop { java { sourceCompatibility = JavaVersion.VERSION_20 targetCompatibility = JavaVersion.VERSION_20 } tasks.withType().configureEach { kotlinOptions { jvmTarget = "20" } } application { javaHome = "C:\\Program Files\\Java\\jdk-20" mainClass = "QuickLaunchMainKt" nativeDistributions { targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb, TargetFormat.Exe) packageName = "QuickLaunch" packageVersion = "4.0.0" macOS { iconFile.set(project.file("src/main/resources/icon.icns")) } windows { iconFile.set(project.file("src/main/resources/icon.ico")) } linux { iconFile.set(project.file("src/main/resources/icon.png")) } } dependencies { implementation(compose.material3) implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.1") //implementation(compose.materialIconsExtended) } } }