Files
rdkt/core/build.gradle.kts
T
2025-06-17 03:58:48 +08:00

140 lines
3.0 KiB
Kotlin

import com.vanniktech.maven.publish.SonatypeHost
import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
plugins {
alias(libs.plugins.kotlinMultiplatform)
alias(libs.plugins.androidLibrary)
alias(libs.plugins.vanniktech.mavenPublish)
kotlin("plugin.serialization") version "2.1.20"
id("org.jetbrains.kotlinx.binary-compatibility-validator") version "0.17.0"
}
group = "cn.rdlevel"
version = "0.1.0"
kotlin {
// jvm
jvm {
compilerOptions {
jvmTarget.set(JvmTarget.JVM_11)
}
}
// android
androidTarget {
publishLibraryVariants("release")
compilerOptions {
jvmTarget.set(JvmTarget.JVM_11)
}
}
// native
// t1
macosX64()
macosArm64()
iosSimulatorArm64()
iosX64()
iosArm64()
// t2
linuxX64()
linuxArm64()
watchosSimulatorArm64()
watchosX64()
watchosArm32()
watchosArm64()
tvosSimulatorArm64()
tvosX64()
tvosArm64()
// t3
androidNativeArm32()
androidNativeArm64()
androidNativeX86()
androidNativeX64()
mingwX64()
watchosDeviceArm64()
// js
js {
browser { }
nodejs { }
binaries.executable()
}
// wasm
@OptIn(ExperimentalWasmDsl::class)
wasmJs {
browser()
nodejs()
d8()
binaries.executable()
}
@OptIn(ExperimentalWasmDsl::class)
wasmWasi {
nodejs()
binaries.executable()
}
sourceSets {
val commonMain by getting {
dependencies {
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1")
}
}
val commonTest by getting {
dependencies {
implementation(libs.kotlin.test)
}
}
}
explicitApi()
}
android {
namespace = "cn.rdlevel.rdkt"
compileSdk = libs.versions.android.compileSdk.get().toInt()
defaultConfig {
minSdk = libs.versions.android.minSdk.get().toInt()
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
}
mavenPublishing {
publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL)
signAllPublications()
coordinates(group.toString(), "rdkt-core", version.toString())
pom {
name = "rdkt"
description = "A library to write Rhythm Doctor levels on Kotlin."
inceptionYear = "2025"
url = "https://github.com/RDCN-Community-Developers/rdkt/"
licenses {
license {
name = "XXX"
url = "YYY"
distribution = "ZZZ"
}
}
developers {
developer {
id = "XXX"
name = "YYY"
url = "ZZZ"
}
}
scm {
url = "XXX"
connection = "YYY"
developerConnection = "ZZZ"
}
}
}