Configured Gradle to use "corretto-21" JVM and bumped the Kotlin Multiplatform plugin to version 2.1.10. Updated the "midi-arrays" dependency to version 0.3.4 across relevant modules. These changes ensure compatibility and leverage the latest library improvements.
183 lines
4.4 KiB
Kotlin
183 lines
4.4 KiB
Kotlin
import java.nio.file.Files
|
|
import java.nio.file.Paths
|
|
|
|
buildscript {
|
|
apply(from = "common.gradle.kts")
|
|
apply(from = "version.gradle.kts")
|
|
}
|
|
|
|
plugins {
|
|
kotlin("multiplatform")
|
|
id("maven-publish")
|
|
application
|
|
}
|
|
|
|
kotlin {
|
|
js {
|
|
compilerOptions {
|
|
target.set("es2015")
|
|
}
|
|
//useEsModules()
|
|
//useCommonJs()
|
|
|
|
binaries.executable()
|
|
browser {
|
|
commonWebpackConfig {
|
|
outputFileName = "vst-chip-worklet-ui.js"
|
|
sourceMaps = true
|
|
}
|
|
|
|
distribution {
|
|
outputDirectory.set(File("$projectDir/web/"))
|
|
}
|
|
}
|
|
}
|
|
/*
|
|
@OptIn(ExperimentalWasmDsl::class)
|
|
wasmJs {
|
|
binaries.executable()
|
|
browser{
|
|
distribution {
|
|
outputDirectory.set(File("$projectDir/web/"))
|
|
}
|
|
}
|
|
|
|
mavenPublication {
|
|
groupId = group as String
|
|
pom { name = "${project.name}-wasm-js" }
|
|
}
|
|
}
|
|
*/
|
|
jvm {
|
|
withJava()
|
|
}
|
|
|
|
sourceSets {
|
|
val commonMain by getting {
|
|
dependencies {
|
|
//base
|
|
implementation("nl.astraeus:kotlin-css-generator:1.0.10")
|
|
implementation("nl.astraeus:vst-ui-base:1.2.0")
|
|
implementation("nl.astraeus:midi-arrays:0.3.4")
|
|
}
|
|
}
|
|
val jsMain by getting {
|
|
dependencies {
|
|
implementation("nl.astraeus:kotlin-komponent:1.2.4")
|
|
}
|
|
}
|
|
val jsTest by getting {
|
|
dependencies {
|
|
implementation(kotlin("test-js"))
|
|
}
|
|
}
|
|
/* val wasmJsMain by getting {
|
|
dependencies {
|
|
implementation("nl.astraeus:kotlin-komponent:1.2.4-SNAPSHOT")
|
|
implementation("nl.astraeus:vst-ui-base:1.0.1-SNAPSHOT")
|
|
}
|
|
}*/
|
|
val jvmMain by getting {
|
|
dependencies {
|
|
//base
|
|
implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.6.0")
|
|
|
|
implementation("io.undertow:undertow-core:2.3.14.Final")
|
|
implementation("io.undertow:undertow-websockets-jsr:2.3.14.Final")
|
|
implementation("org.jboss.xnio:xnio-nio:3.8.16.Final")
|
|
|
|
implementation("org.xerial:sqlite-jdbc:3.46.0.0")
|
|
implementation("com.zaxxer:HikariCP:4.0.3")
|
|
implementation("nl.astraeus:simple-jdbc-stats:1.6.1")
|
|
|
|
implementation("org.jetbrains.kotlinx:kotlinx-html-jvm:0.11.0")
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
application {
|
|
mainClass.set("nl.astraeus.vst.chip.MainKt")
|
|
}
|
|
|
|
/* Hardcoded deploy configuration */
|
|
|
|
val deployDirectory = "vst-chip.midi-vst.com"
|
|
|
|
tasks.register<Copy>("unzipDistribution") {
|
|
mustRunAfter("removeSymbolicLink")
|
|
val zipDir = layout.projectDirectory.dir("build/distributions")
|
|
val zipFile = zipDir.file("${project.name}-${project.version}.zip")
|
|
|
|
val outputDir = file("/home/rnentjes/www/${deployDirectory}")
|
|
|
|
from(zipTree(zipFile))
|
|
into(outputDir)
|
|
}
|
|
|
|
tasks.register("createSymbolicLink") {
|
|
mustRunAfter("unzipDistribution")
|
|
doLast {
|
|
val targetDir =
|
|
Paths.get("/home/rnentjes/www/${deployDirectory}/${project.name}-${project.version}") // Directory to link to
|
|
val symlink =
|
|
Paths.get("/home/rnentjes/www/${deployDirectory}/${project.name}") // Path for the symbolic link
|
|
|
|
if (!Files.exists(targetDir)) {
|
|
throw IllegalArgumentException("Target directory does not exist: $targetDir")
|
|
}
|
|
|
|
if (Files.exists(symlink)) {
|
|
println("Symbolic link already exists: $symlink")
|
|
} else {
|
|
Files.createSymbolicLink(symlink, targetDir)
|
|
println("Symbolic link created: $symlink -> $targetDir")
|
|
}
|
|
}
|
|
}
|
|
|
|
tasks.register<Copy>("copyWeb") {
|
|
val webDir = layout.projectDirectory.dir("web")
|
|
val outputDir = file("/home/rnentjes/www/${deployDirectory}/web")
|
|
|
|
from(webDir)
|
|
into(outputDir)
|
|
}
|
|
|
|
tasks.named<Task>("build") {
|
|
dependsOn("generateVersionProperties")
|
|
}
|
|
|
|
tasks.named("kotlinUpgradeYarnLock") {
|
|
mustRunAfter("clean")
|
|
}
|
|
|
|
tasks.named("build") {
|
|
mustRunAfter("kotlinUpgradeYarnLock")
|
|
}
|
|
|
|
tasks.named("build") {
|
|
mustRunAfter("kotlinUpgradeYarnLock")
|
|
}
|
|
|
|
tasks.named("copyWeb") {
|
|
mustRunAfter("build")
|
|
}
|
|
|
|
tasks.register("removeSymbolicLink") {
|
|
mustRunAfter("build")
|
|
doLast {
|
|
delete(layout.projectDirectory.file("/home/rnentjes/www/${deployDirectory}/${project.name}"))
|
|
}
|
|
}
|
|
|
|
tasks.register("deploy") {
|
|
dependsOn("clean")
|
|
dependsOn("kotlinUpgradeYarnLock")
|
|
dependsOn("build")
|
|
dependsOn("copyWeb")
|
|
dependsOn("removeSymbolicLink")
|
|
dependsOn("unzipDistribution")
|
|
dependsOn("createSymbolicLink")
|
|
}
|