import org.gradle.api.tasks.JavaExec import org.jetbrains.compose.desktop.application.dsl.TargetFormat plugins { alias(libs.plugins.kotlin.multiplatform) alias(libs.plugins.kotlin.compose) alias(libs.plugins.compose.multiplatform) } kotlin { jvm("desktop") jvmToolchain(21) sourceSets { val desktopMain by getting { dependencies { implementation(project(":shared")) implementation(compose.desktop.currentOs) implementation(compose.material3) implementation(compose.materialIconsExtended) implementation("io.github.kevinnzou:compose-webview-multiplatform:2.0.3") implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3") implementation("net.java.dev.jna:jna:5.17.0") implementation("org.apache.commons:commons-compress:1.28.0") implementation("org.tukaani:xz:1.10") implementation("com.twelvemonkeys.imageio:imageio-webp:3.13.1") } } val desktopTest by getting { dependencies { implementation(kotlin("test")) } } } } compose.desktop { application { mainClass = "com.aryan.reader.desktop.MainKt" jvmArgs("--add-opens", "java.desktop/sun.awt=ALL-UNNAMED") jvmArgs("--add-opens", "java.desktop/java.awt.peer=ALL-UNNAMED") nativeDistributions { targetFormats(TargetFormat.Exe, TargetFormat.Msi) packageName = "Episteme" packageVersion = "1.0.0" description = "Episteme desktop shell" vendor = "Aryan Reader" } } } afterEvaluate { tasks.withType().configureEach { jvmArgs("--add-opens", "java.desktop/sun.awt=ALL-UNNAMED") jvmArgs("--add-opens", "java.desktop/java.awt.peer=ALL-UNNAMED") if (System.getProperty("os.name").contains("Mac")) { jvmArgs("--add-opens", "java.desktop/sun.lwawt=ALL-UNNAMED") jvmArgs("--add-opens", "java.desktop/sun.lwawt.macosx=ALL-UNNAMED") } } }