Updated the version from 2.0.0-SNAPSHOT to 2.0.0 in `build.gradle.kts` for release readiness. Added a new `test-app` project including Gradle build files, scripts, and configuration for Kotlin multiplatform with JS and JVM targets to enable testing and application runtime.
161 lines
4.2 KiB
Kotlin
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"
|
|
|
|
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>())
|
|
}
|