137 lines
3.7 KiB
Groovy
137 lines
3.7 KiB
Groovy
plugins {
|
|
id "org.jetbrains.kotlin.multiplatform"
|
|
id "maven-publish"
|
|
}
|
|
|
|
|
|
group = "net.codinux.utils"
|
|
|
|
|
|
kotlin {
|
|
jvm {
|
|
compilations.all {
|
|
kotlinOptions.jvmTarget = '1.8'
|
|
}
|
|
withJava()
|
|
testRuns["test"].executionTask.configure {
|
|
useJUnitPlatform()
|
|
}
|
|
}
|
|
|
|
js(IR) {
|
|
binaries.executable()
|
|
browser {
|
|
testTask {
|
|
useKarma {
|
|
// we cannot assume that Chrome and Firefox are installed on all systems
|
|
// useChromeHeadless()
|
|
// useFirefox()
|
|
enabled = false
|
|
}
|
|
}
|
|
}
|
|
nodejs {
|
|
testTask {
|
|
useMocha {
|
|
enabled = true
|
|
}
|
|
testLogging {
|
|
events "failed"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
ios {
|
|
binaries {
|
|
framework {
|
|
baseName = "MultiplatformUtils"
|
|
}
|
|
}
|
|
}
|
|
|
|
def hostOs = System.getProperty("os.name")
|
|
def isMingwX64 = hostOs.startsWith("Windows")
|
|
def nativeTarget
|
|
if (hostOs == "Mac OS X") nativeTarget = macosX64('native')
|
|
else if (hostOs == "Linux") nativeTarget = linuxX64("native")
|
|
else if (isMingwX64) nativeTarget = mingwX64("native")
|
|
else throw new GradleException("Host OS is not supported in Kotlin/Native.")
|
|
|
|
|
|
sourceSets {
|
|
commonMain {
|
|
dependencies {
|
|
api "org.jetbrains.kotlinx:kotlinx-datetime:$kotlinxDateTimeVersion"
|
|
}
|
|
}
|
|
|
|
commonTest {
|
|
dependencies {
|
|
implementation kotlin("test-common")
|
|
implementation kotlin("test-annotations-common")
|
|
}
|
|
}
|
|
|
|
|
|
jvmMain {
|
|
dependencies {
|
|
// TODO: why does for kotlinx-datetime also the platform specific dependency has to be imported?
|
|
api("org.jetbrains.kotlinx:kotlinx-datetime-jvm:$kotlinxDateTimeVersion")
|
|
|
|
compileOnly "org.slf4j:slf4j-api:$slf4jVersion"
|
|
|
|
compileOnly "com.fasterxml.jackson.core:jackson-databind:2.9.9"
|
|
}
|
|
}
|
|
|
|
jvmTest {
|
|
dependencies {
|
|
implementation kotlin("test-junit")
|
|
|
|
implementation "org.junit.jupiter:junit-jupiter:$junit5Version"
|
|
runtimeOnly "org.junit.jupiter:junit-jupiter-engine:$junit5Version"
|
|
|
|
implementation "org.slf4j:slf4j-simple:$slf4jVersion"
|
|
}
|
|
|
|
}
|
|
|
|
|
|
jsMain {
|
|
dependencies {
|
|
// TODO: why does for kotlinx-datetime also the platform specific dependency has to be imported?
|
|
api("org.jetbrains.kotlinx:kotlinx-datetime-js:$kotlinxDateTimeVersion")
|
|
implementation npm("@js-joda/timezone", "2.3.0")
|
|
}
|
|
}
|
|
|
|
jsTest {
|
|
dependencies {
|
|
implementation kotlin("test-js") // don't know why this dependency is needed here, it's not needed e.g. in fints4k project
|
|
}
|
|
}
|
|
|
|
|
|
iosMain {
|
|
dependencies {
|
|
|
|
}
|
|
}
|
|
|
|
linuxX64Main {
|
|
dependencies {
|
|
// TODO: why does for kotlinx-datetime also the platform specific dependency has to be imported?
|
|
api("org.jetbrains.kotlinx:kotlinx-datetime-linuxx64:$kotlinxDateTimeVersion")
|
|
}
|
|
}
|
|
|
|
mingwX64Main {
|
|
dependencies {
|
|
// TODO: why does for kotlinx-datetime also the platform specific dependency has to be imported?
|
|
api("org.jetbrains.kotlinx:kotlinx-datetime-mingwx64:$kotlinxDateTimeVersion")
|
|
}
|
|
}
|
|
|
|
}
|
|
} |