diff --git a/.idea/artifacts/audio_worklet_js_1_0_0_SNAPSHOT.xml b/.idea/artifacts/audio_worklet_js_1_0_0_SNAPSHOT.xml index f0c6900..070faf9 100644 --- a/.idea/artifacts/audio_worklet_js_1_0_0_SNAPSHOT.xml +++ b/.idea/artifacts/audio_worklet_js_1_0_0_SNAPSHOT.xml @@ -1,8 +1,6 @@ $PROJECT_DIR$/audio-worklet/build/libs - - - + \ No newline at end of file diff --git a/.idea/artifacts/audio_worklet_jvm_1_0_0_SNAPSHOT.xml b/.idea/artifacts/audio_worklet_jvm_1_0_0_SNAPSHOT.xml index d7beaf8..87dd0e5 100644 --- a/.idea/artifacts/audio_worklet_jvm_1_0_0_SNAPSHOT.xml +++ b/.idea/artifacts/audio_worklet_jvm_1_0_0_SNAPSHOT.xml @@ -1,8 +1,6 @@ $PROJECT_DIR$/audio-worklet/build/libs - - - + \ No newline at end of file diff --git a/.idea/artifacts/common_js_1_0_0_SNAPSHOT.xml b/.idea/artifacts/common_js_1_0_0_SNAPSHOT.xml index 468ef31..030fdad 100644 --- a/.idea/artifacts/common_js_1_0_0_SNAPSHOT.xml +++ b/.idea/artifacts/common_js_1_0_0_SNAPSHOT.xml @@ -1,8 +1,6 @@ $PROJECT_DIR$/common/build/libs - - - + \ No newline at end of file diff --git a/.idea/artifacts/common_jvm_1_0_0_SNAPSHOT.xml b/.idea/artifacts/common_jvm_1_0_0_SNAPSHOT.xml index d4560ce..34ab2b8 100644 --- a/.idea/artifacts/common_jvm_1_0_0_SNAPSHOT.xml +++ b/.idea/artifacts/common_jvm_1_0_0_SNAPSHOT.xml @@ -1,8 +1,6 @@ $PROJECT_DIR$/common/build/libs - - - + \ No newline at end of file diff --git a/.idea/jsLibraryMappings.xml b/.idea/jsLibraryMappings.xml deleted file mode 100644 index 7160600..0000000 --- a/.idea/jsLibraryMappings.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/audio-worklet/build.gradle.kts b/audio-worklet/build.gradle.kts index 8b6fdf4..be2d92b 100644 --- a/audio-worklet/build.gradle.kts +++ b/audio-worklet/build.gradle.kts @@ -1,6 +1,5 @@ -@file:OptIn(ExperimentalKotlinGradlePluginApi::class, ExperimentalDistributionDsl::class) +@file:OptIn(ExperimentalDistributionDsl::class) -import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi import org.jetbrains.kotlin.gradle.targets.js.dsl.ExperimentalDistributionDsl import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackOutput @@ -42,7 +41,7 @@ kotlin { dependencies { implementation(project(":common")) - implementation("nl.astraeus:vst-worklet-base:1.0.0-SNAPSHOT") + implementation("nl.astraeus:vst-worklet-base:1.0.1") } } val jsMain by getting { diff --git a/build.gradle.kts b/build.gradle.kts index 81a47f5..3a4bc44 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,5 +1,9 @@ +import java.nio.file.Files +import java.nio.file.Paths + buildscript { apply(from = "common.gradle.kts") + apply(from = "version.gradle.kts") } plugins { @@ -28,7 +32,7 @@ kotlin { } } } - jvm{ + jvm { withJava() } @@ -37,15 +41,15 @@ kotlin { dependencies { implementation(project(":common")) //base - api("nl.astraeus:kotlin-css-generator:1.0.7") + 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.0-SNAPSHOT") + implementation("nl.astraeus:vst-ui-base:1.1.1") } } val jsMain by getting { dependencies { //base - implementation("nl.astraeus:kotlin-komponent-js:1.2.2") + implementation("nl.astraeus:kotlin-komponent-js:1.2.4") } } val jsTest by getting { @@ -70,3 +74,84 @@ kotlin { } } } + +/* Hardcoded deploy configuration */ + +val deployDirectory = "vst-string.midi-vst.com" + +tasks.register("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("copyWeb") { + val webDir = layout.projectDirectory.dir("web") + val outputDir = file("/home/rnentjes/www/${deployDirectory}/web") + + from(webDir) + into(outputDir) +} + +tasks.named("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") +} diff --git a/common.gradle.kts b/common.gradle.kts index 34228df..0ea050f 100644 --- a/common.gradle.kts +++ b/common.gradle.kts @@ -1,13 +1,12 @@ group = "nl.astraeus" -version = "1.0.0-SNAPSHOT" +version = "0.1.0" allprojects { repositories { mavenLocal() mavenCentral() - maven("https://reposilite.astraeus.nl/releases") maven { - url = uri("https://nexus.astraeus.nl/nexus/content/groups/public") + url = uri("https://gitea.astraeus.nl:8443/api/packages/rnentjes/maven") } } } diff --git a/common/build.gradle.kts b/common/build.gradle.kts index 4e2f549..064d8ba 100644 --- a/common/build.gradle.kts +++ b/common/build.gradle.kts @@ -1,7 +1,3 @@ -@file:OptIn(ExperimentalKotlinGradlePluginApi::class) - -import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi - buildscript { apply(from = "../common.gradle.kts") } @@ -20,13 +16,8 @@ kotlin { jvm() sourceSets { - val commonMain by getting { - dependencies { - } - } - val jsMain by getting { - dependencies { - } - } + val commonMain by getting + val jsMain by getting + val jvmMain by getting } } diff --git a/common/src/commonMain/kotlin/nl/astraeus/vst/Note.kt b/common/src/commonMain/kotlin/nl/astraeus/vst/Note.kt index 41970fa..4b1965d 100644 --- a/common/src/commonMain/kotlin/nl/astraeus/vst/Note.kt +++ b/common/src/commonMain/kotlin/nl/astraeus/vst/Note.kt @@ -1,3 +1,5 @@ +@file:OptIn(ExperimentalJsExport::class) + package nl.astraeus.vst import kotlin.js.ExperimentalJsExport diff --git a/common/src/commonMain/kotlin/nl/astraeus/vst/string/PhysicalString.kt b/common/src/commonMain/kotlin/nl/astraeus/vst/string/PhysicalString.kt index 2ca4f94..2d618a0 100644 --- a/common/src/commonMain/kotlin/nl/astraeus/vst/string/PhysicalString.kt +++ b/common/src/commonMain/kotlin/nl/astraeus/vst/string/PhysicalString.kt @@ -1,3 +1,5 @@ +@file:OptIn(ExperimentalJsExport::class) + package nl.astraeus.vst.string import nl.astraeus.vst.Note diff --git a/settings.common.gradle.kts b/settings.common.gradle.kts index d8820bf..a00b896 100644 --- a/settings.common.gradle.kts +++ b/settings.common.gradle.kts @@ -1,7 +1,6 @@ pluginManagement { plugins { - kotlin("multiplatform") version "2.0.20-Beta1" - id("org.gradle.toolchains.foojay-resolver-convention") version "0.5.0" + kotlin("multiplatform") version "2.0.21" } repositories { gradlePluginPortal() diff --git a/src/jsMain/kotlin/nl/astraeus/vst/string/Main.kt b/src/jsMain/kotlin/nl/astraeus/vst/string/Main.kt index 4e2b919..de261dc 100644 --- a/src/jsMain/kotlin/nl/astraeus/vst/string/Main.kt +++ b/src/jsMain/kotlin/nl/astraeus/vst/string/Main.kt @@ -13,7 +13,7 @@ import nl.astraeus.vst.ui.view.BaseVstView fun main() { CssSettings.shortId = false - CssSettings.preFix = "vst-chip" + CssSettings.preFix = "vst-string" Komponent.unsafeMode = UnsafeMode.UNSAFE_SVG_ONLY Komponent.create(document.body!!, BaseVstView("VST Guiter", MainView) { diff --git a/version.gradle.kts b/version.gradle.kts new file mode 100644 index 0000000..7443575 --- /dev/null +++ b/version.gradle.kts @@ -0,0 +1,21 @@ +import java.util.Date +import java.util.Properties + +tasks.register("generateVersionProperties") { + doLast { + val versionDir = layout.buildDirectory.dir("processedResources/jvm/main") + val versionFile = versionDir.get().file("version.properties").asFile + versionDir.get().asFile.mkdirs() + + val properties = Properties().apply { + setProperty("group", project.group.toString()) + setProperty("name", project.name.toString()) + setProperty("version", project.version.toString()) + setProperty("buildTime", Date().toString()) + } + + versionFile.writer().use { writer -> + properties.store(writer, "Version information") + } + } +} \ No newline at end of file