diff options
author | Yahor Berdnikau <yahor.berdnikau@jetbrains.com> | 2024-02-14 10:55:15 +0100 |
---|---|---|
committer | Yahor Berdnikau <Ky4eP9IBbIu@gmail.com> | 2024-02-14 13:17:45 +0100 |
commit | ab644225d3101625ca0ba22511b749571af11335 (patch) | |
tree | 239d1ff8f8b46a68eab562ac0b47f74546bd77cf | |
parent | a6c4d67afd7bc10dd629542c2b88262f2e74bbb1 (diff) | |
download | kotlinx.serialization-ab644225d3101625ca0ba22511b749571af11335.tar.gz |
Better approach to configuring common sources for KotlinJvmCompile task
Kotlin's language version 2.0 has a new model to compile common/shared sources which requires more fine-grained task configuration. For language versions lower than 2.0, task configuration is different and all common sources should be set as input.
-rw-r--r-- | buildSrc/src/main/kotlin/Java9Modularity.kt | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/buildSrc/src/main/kotlin/Java9Modularity.kt b/buildSrc/src/main/kotlin/Java9Modularity.kt index 391e29da..2743b00f 100644 --- a/buildSrc/src/main/kotlin/Java9Modularity.kt +++ b/buildSrc/src/main/kotlin/Java9Modularity.kt @@ -161,12 +161,15 @@ object Java9Modularity { .find { it.name == "ownModuleName" } ?.get(this) as? Property<String> ownModuleNameProp?.set(compileTask.kotlinOptions.moduleName) + } + + val taskKotlinLanguageVersion = compilerOptions.languageVersion.orElse(KotlinVersion.DEFAULT) + @OptIn(InternalKotlinGradlePluginApi::class) + if (taskKotlinLanguageVersion.get() < KotlinVersion.KOTLIN_2_0) { // part of work-around for https://youtrack.jetbrains.com/issue/KT-60541 @Suppress("INVISIBLE_MEMBER") commonSourceSet.from(compileTask.commonSourceSet) - } - @OptIn(InternalKotlinGradlePluginApi::class) - apply { + } else { multiplatformStructure.refinesEdges.set(compileTask.multiplatformStructure.refinesEdges) multiplatformStructure.fragments.set(compileTask.multiplatformStructure.fragments) } |