import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.dsl.KotlinVersion import ru.landgrafhomyak.kotlin.kmp_gradle_build_helper.* import ru.landgrafhomyak.kotlin.kmp_gradle_build_helper.plugin.xomrk buildscript { repositories { mavenCentral() maven("https://maven.landgrafhomyak.ru/") } dependencies { classpath("ru.landgrafhomyak.kotlin:kotlin-mpp-gradle-build:v0.3k2.1.10") } } group = "ru.landgrafhomyak.utility" version = "0.4.5" repositories { mavenCentral() } xomrk { kotlin { setCompatibilityWithKotlin(KotlinVersion.KOTLIN_2_0) optInContracts() noWarnExpectActual() warningsAsErrors() defineAllMultiplatformTargets() jvmToolchain(8) jvm { withJava() compilations.configureEach { compileJavaTaskProvider?.configure { targetCompatibility = "1.8" } compileTaskProvider.configure { compilerOptions { jvmTarget = JvmTarget.JVM_1_8 freeCompilerArgs.addAll("-Xallow-kotlin-package") } } } } sourceSets { val commonMain by getting { dependencies { compileOnly(kotlin("stdlib")) } } val jvmMain by getting { dependencies { compileOnly(kotlin("stdlib")) } } val nonJvmMain by creating { dependsOn(commonMain) dependencies { implementation(kotlin("stdlib")) } } sourceSets.configureEach { when { // commonMain !in dependsOn -> return@configureEach !name.endsWith("Main") -> return@configureEach this@configureEach === commonMain -> return@configureEach this@configureEach === jvmMain -> return@configureEach this@configureEach === nonJvmMain -> return@configureEach } dependsOn(nonJvmMain) } } } publishing { repositories { defineXomrkGiteaMavenRepo() } } }