@file:OptIn(ExperimentalKotlinGradlePluginApi::class) import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi plugins { kotlin("multiplatform") version "2.1.0" `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 { // 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 { dependsOn(tasks.withType()) } tasks.withType { dependsOn(tasks.withType()) }