89 lines
2.2 KiB
Groovy
89 lines
2.2 KiB
Groovy
plugins {
|
|
id 'maven-publish'
|
|
alias catalog.plugins.kotlin.multiplatform
|
|
}
|
|
|
|
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
|
|
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmCompilerOptions
|
|
import org.apache.tools.ant.taskdefs.condition.Os
|
|
|
|
allprojects {
|
|
group = "net.woggioni"
|
|
version = getProperty('klevtree.version')
|
|
|
|
repositories {
|
|
maven {
|
|
url = getProperty('gitea.maven.url')
|
|
}
|
|
mavenCentral()
|
|
}
|
|
}
|
|
|
|
kotlin {
|
|
jvmToolchain(21)
|
|
sourceSets {
|
|
commonTest {
|
|
dependencies {
|
|
implementation group: 'org.jetbrains.kotlin',
|
|
name: 'kotlin-test',
|
|
version: catalog.versions.kotlin.asProvider().get()
|
|
}
|
|
}
|
|
}
|
|
jvm {
|
|
withJava()
|
|
compilations.main {
|
|
Action<KotlinJvmCompilerOptions> action = { KotlinJvmCompilerOptions kjco ->
|
|
kjco.javaParameters = true
|
|
kjco.jvmTarget = JvmTarget.JVM_1_8
|
|
kjco.moduleName = "net.woggioni.klevtree"
|
|
}
|
|
compilerOptions.configure(action)
|
|
}
|
|
}
|
|
|
|
js(IR) {
|
|
nodejs()
|
|
}
|
|
|
|
if(Os.isFamily(Os.FAMILY_UNIX)) {
|
|
if(Os.isArch("amd64")) {
|
|
linuxX64()
|
|
} else if(Os.isArch("aarch64")) {
|
|
linuxArm64()
|
|
}
|
|
} else if(Os.isFamily(Os.FAMILY_MAC)) {
|
|
if(Os.isArch("amd64")) {
|
|
macosX64()
|
|
} else if(Os.isArch("aarch64")) {
|
|
macosArm64()
|
|
}
|
|
} else if(Os.isFamily(Os.FAMILY_WINDOWS)) {
|
|
mingwX64()
|
|
}
|
|
}
|
|
|
|
compileJava {
|
|
options.release = 11
|
|
String patchString = 'net.woggioni.klevtree=' + kotlin.targets.jvm.compilations.main.output.classesDirs.asPath
|
|
options.compilerArgs << '--patch-module' << patchString
|
|
}
|
|
|
|
publishing {
|
|
repositories {
|
|
maven {
|
|
name = "Gitea"
|
|
url = uri(getProperty('gitea.maven.url'))
|
|
|
|
credentials(HttpHeaderCredentials) {
|
|
name = "Authorization"
|
|
value = "token ${System.getenv()["PUBLISHER_TOKEN"]}"
|
|
}
|
|
|
|
authentication {
|
|
header(HttpHeaderAuthentication)
|
|
}
|
|
}
|
|
}
|
|
}
|