Upgraded various dependencies, including `vst-ui-base` to 1.2.0 and build configurations to include `mavenLocal`. Refined MIDI handling by removing redundant logging to improve performance and clarity. Adjusted knob component value ranges for better user experience.
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.2")
|
|
}
|
|
}
|
|
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")
|
|
}
|