You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

63 lines
1.8 KiB

import org.jetbrains.compose.compose
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import de.undercouch.gradle.tasks.download.Download
import kotlin.text.capitalize
plugins {
kotlin("jvm") version "1.5.21"
id("org.jetbrains.compose") version "1.0.0-alpha1"
id("de.undercouch.download") version "4.1.1"
application
}
val libraryPath = "third_party/java-cef"
val hostOs = System.getProperty("os.name")
val target = when {
hostOs == "Mac OS X" -> "macos"
hostOs == "Linux" -> "linux"
hostOs.startsWith("Win") -> "windows"
else -> throw Error("Unknown os $hostOs")
}
val cefDownloadZip = run {
val zipName = "jcef-runtime-$target.zip"
val zipFile = File("third_party/$zipName")
tasks.register("downloadCef", Download::class) {
onlyIf { !zipFile.exists() }
src("https://bintray.com/jetbrains/skija/download_file?file_path=$zipName")
dest(zipFile)
onlyIfModified(true)
}.map { zipFile }
}
val cefUnZip = run {
val targetDir = File("third_party/java-cef").apply { mkdirs() }
tasks.register("unzipCef", Copy::class) {
from(cefDownloadZip.map { zipTree(it) })
into(targetDir)
}.map { targetDir }
}
repositories {
google()
mavenCentral()
maven("https://maven.pkg.jetbrains.space/public/p/compose/dev")
// temp
maven("https://packages.jetbrains.team/maven/p/ui/dev")
}
dependencies {
implementation("org.jetbrains.jcef:jcef-skiko:0.1")
implementation(compose.desktop.currentOs)
}
tasks.withType<KotlinCompile>().configureEach {
kotlinOptions.freeCompilerArgs += "-Xopt-in=kotlin.RequiresOptIn"
dependsOn(cefUnZip)
}
application {
applicationDefaultJvmArgs = listOf("-Djava.library.path=$libraryPath")
mainClassName = "org.jetbrains.compose.desktop.AppKt"
}