Files
rdkt/core/build.gradle.kts
T
2025-06-22 03:01:09 +08:00

144 lines
3.1 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 {
testTask {
enabled = false
}
}
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"
}
}
}