Configured the 'application' plugin with the main class to ensure the application starts with the correct entry point. This change is necessary for proper execution of the program when deploying or running from the build system.
162 lines
4.2 KiB
Kotlin
162 lines
4.2 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-string-worklet-ui.js"
|
|
sourceMaps = true
|
|
}
|
|
|
|
distribution {
|
|
outputDirectory.set(File("$projectDir/web/"))
|
|
}
|
|
}
|
|
}
|
|
jvm {
|
|
withJava()
|
|
}
|
|
|
|
sourceSets {
|
|
val commonMain by getting {
|
|
dependencies {
|
|
implementation(project(":common"))
|
|
//base
|
|
implementation("nl.astraeus:kotlin-css-generator:1.0.10")
|
|
implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.4.0")
|
|
implementation("nl.astraeus:vst-ui-base:1.1.1")
|
|
}
|
|
}
|
|
val jsMain by getting {
|
|
dependencies {
|
|
//base
|
|
implementation("nl.astraeus:kotlin-komponent-js:1.2.4")
|
|
}
|
|
}
|
|
val jsTest by getting {
|
|
dependencies {
|
|
implementation(kotlin("test-js"))
|
|
}
|
|
}
|
|
val jvmMain by getting {
|
|
dependencies {
|
|
//base
|
|
|
|
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.string.MainKt")
|
|
}
|
|
|
|
/* Hardcoded deploy configuration */
|
|
|
|
val deployDirectory = "vst-string.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")
|
|
}
|