Files
vst-ui-base/build.gradle.kts
rnentjes bcc88f71e4 Update build scripts and configure multiplatform project
Added a Gradle build script for the test-app module with Kotlin Multiplatform configuration, including JS and JVM targets. Upgraded Kotlin plugin version to 2.1.10, updated dependencies, and adjusted the JS distribution path. Renamed the JS file in UndertowServer configuration for accuracy.
2025-03-17 18:13:58 +00:00

161 lines
4.2 KiB
Kotlin

@file:OptIn(ExperimentalKotlinGradlePluginApi::class)
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
plugins {
kotlin("multiplatform") version "2.1.10"
`maven-publish`
signing
}
group = "nl.astraeus"
version = "2.0.0-SNAPSHOT"
repositories {
mavenCentral()
maven {
setUrl("https://gitea.astraeus.nl/api/packages/rnentjes/maven")
}
maven {
setUrl("https://gitea.astraeus.nl:8443/api/packages/rnentjes/maven")
}
}
kotlin {
js {
compilerOptions {
target.set("es2015")
}
binaries.library()
browser {
commonWebpackConfig {
sourceMaps = true
}
}
}
jvm {
withJava()
}
sourceSets {
val commonMain by getting {
dependencies {
api("nl.astraeus:kotlin-css-generator:1.0.10")
}
}
val jsMain by getting {
dependencies {
api("nl.astraeus:kotlin-komponent:1.2.4")
}
}
val jsTest by getting {
dependencies {
implementation(kotlin("test"))
}
}
val jvmMain by getting {
dependencies {
api("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")
api("org.jetbrains.kotlinx:kotlinx-html-jvm:0.11.0")
}
}
}
}
extra["PUBLISH_GROUP_ID"] = group
extra["PUBLISH_VERSION"] = version
extra["PUBLISH_ARTIFACT_ID"] = name
// Stub secrets to let the project sync and build without the publication values set up
val signingKeyId: String? by project
val signingPassword: String? by project
val signingSecretKeyRingFile: String? by project
extra["signing.keyId"] = signingKeyId
extra["signing.password"] = signingPassword
extra["signing.secretKeyRingFile"] = signingSecretKeyRingFile
val javadocJar by tasks.registering(Jar::class) {
archiveClassifier.set("javadoc")
}
publishing {
repositories {
maven {
name = "gitea"
setUrl("https://gitea.astraeus.nl/api/packages/rnentjes/maven")
credentials {
val giteaUsername: String? by project
val giteaPassword: String? by project
username = giteaUsername
password = giteaPassword
}
}
maven {
name = "gitea8443"
setUrl("https://gitea.astraeus.nl:8443/api/packages/rnentjes/maven")
credentials {
val giteaUsername: String? by project
val giteaPassword: String? by project
username = giteaUsername
password = giteaPassword
}
}
}
// Configure all publications
publications.withType<MavenPublication> {
// Stub javadoc.jar artifact
artifact(javadocJar.get())
// Provide artifacts information requited by Maven Central
pom {
name.set("vst-ui-base")
description.set("Vst UI base")
url.set("https://gitea.astraeus.nl/rnentjes/vst-ui-base")
licenses {
license {
name.set("MIT")
url.set("https://opensource.org/licenses/MIT")
}
}
developers {
developer {
id.set("rnentjes")
name.set("Rien Nentjes")
email.set("info@nentjes.com")
}
}
scm {
url.set("https://gitea.astraeus.nl/rnentjes/vst-ui-base")
}
}
}
}
signing {
sign(publishing.publications)
}
tasks.withType<PublishToMavenRepository> {
dependsOn(tasks.withType<Sign>())
}
tasks.withType<PublishToMavenLocal> {
dependsOn(tasks.withType<Sign>())
}