mana-kotlin-event-sync-room/build.gradle.kts
Till JS 1862012df4 0.8.0: Lockstep mit mana-kotlin-event-sync 0.8.0 (402-Handling)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 19:33:37 +02:00

76 lines
1.7 KiB
Kotlin

import org.jetbrains.kotlin.gradle.dsl.JvmTarget
plugins {
alias(libs.plugins.android.library)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.ksp)
`maven-publish`
}
group = "ev.mana"
// Lockstep mit ev.mana:mana-kotlin-event-sync — der Adapter wird zusammen
// mit der Engine-Lib versioniert und released.
version = "0.8.0"
android {
namespace = "ev.mana.eventsync.room"
compileSdk = 36
defaultConfig {
minSdk = 24
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
// Wie mana-kotlin-widget: nur die release-Variante als Maven-Artefakt,
// inkl. Sources-Jar für Doc-Navigation in den App-Modulen.
publishing {
singleVariant("release") {
withSourcesJar()
}
}
}
kotlin {
compilerOptions {
jvmTarget.set(JvmTarget.JVM_17)
}
}
dependencies {
// `api`: Konsumenten arbeiten direkt mit EventStore/EventEnvelope aus
// der Engine-Lib — die kommt transitiv über dieses Artefakt.
api(libs.mana.event.sync)
api(libs.room.runtime)
implementation(libs.room.ktx)
ksp(libs.room.compiler)
}
publishing {
publications {
register<MavenPublication>("release") {
artifactId = "mana-kotlin-event-sync-room"
afterEvaluate {
from(components["release"])
}
}
}
repositories {
maven {
name = "Forgejo"
val forgejoUrl = (findProperty("forgejoPackagesUrl") as String?)
?: "https://git.mana.how/api/packages/mana/maven"
url = uri(forgejoUrl)
credentials(HttpHeaderCredentials::class) {
name = "Authorization"
value = "token ${(findProperty("forgejoToken") as String?) ?: System.getenv("FORGEJO_TOKEN") ?: ""}"
}
authentication {
create<HttpHeaderAuthentication>("header")
}
}
}
}