import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { id("inceptum.application") id("com.github.johnrengelman.shadow") kotlin("jvm") version "1.9.0" kotlin("plugin.sam.with.receiver") version "1.9.0" } application { mainClass.set("io.gitlab.jfronny.inceptum.gtk.GtkMain") } samWithReceiver { annotation("io.gitlab.jfronny.commons.SamWithReceiver") } repositories { mavenLocal() } dependencies { val javagiVersion: String by rootProject.extra implementation("io.github.jwharm.javagi:glib:$javagiVersion") implementation("io.github.jwharm.javagi:gtk:$javagiVersion") implementation("io.github.jwharm.javagi:adw:$javagiVersion") implementation(project(":launcher")) } tasks.compileJava { options.compilerArgs.add("--enable-preview") } tasks.runShadow { if (project.hasProperty("showcase")) { environment("GTK_THEME", "Adwaita") environment("GDK_BACKEND", "broadway") environment("BROADWAY_DISPLAY", ":5") var proc: Process? = null doFirst { proc = Runtime.getRuntime().exec(arrayOf("gtk4-broadwayd", ":5")) Runtime.getRuntime().exec(arrayOf("xdg-open", "http://127.0.0.1:8085")) Thread.sleep(1000) } doLast { if (proc != null) Runtime.getRuntime().exec(arrayOf("kill", proc!!.pid().toString())) } } workingDir = rootProject.projectDir environment("GTK_DEBUG", "interactive") // interactive:actions jvmArgs("--enable-preview", "--enable-native-access=ALL-UNNAMED") } tasks.withType(KotlinCompile::class) { compilerOptions.freeCompilerArgs.addAll("-Xlambdas=indy") }