diff --git a/impl/src/jvmMain/kotlin/ru/landgrafhomyak/kotlin/kmp_gradle_build_helper/improvements.kt b/impl/src/jvmMain/kotlin/ru/landgrafhomyak/kotlin/kmp_gradle_build_helper/improvements.kt new file mode 100644 index 0000000..bd859f8 --- /dev/null +++ b/impl/src/jvmMain/kotlin/ru/landgrafhomyak/kotlin/kmp_gradle_build_helper/improvements.kt @@ -0,0 +1,22 @@ +package ru.landgrafhomyak.kotlin.kmp_gradle_build_helper + +import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension + + +public enum class Improvements { + JAVA_INTERFACES_DEFAULT_METHODS { + // since kotlin 1.4 + override fun fix(target: KotlinMultiplatformExtension) { + target.configureAllCompilersOptions { freeCompilerArgs.add("-Xjvm-default=all") } + } + }; + + internal abstract fun fix(target: KotlinMultiplatformExtension) +} + + +public fun KotlinMultiplatformExtension.fixAllStrangeBehavioursExcept(vararg except: Improvements) { + (Improvements.values().toSet() - except.toSet()).forEach { f -> f.fix(this) } +} + +public fun KotlinMultiplatformExtension.fixAllStrangeBehaviours(): Unit = this.fixAllStrangeBehavioursExcept() \ No newline at end of file