summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYahor Berdnikau <yahor.berdnikau@jetbrains.com>2024-02-14 10:55:15 +0100
committerYahor Berdnikau <Ky4eP9IBbIu@gmail.com>2024-02-14 13:17:45 +0100
commitab644225d3101625ca0ba22511b749571af11335 (patch)
tree239d1ff8f8b46a68eab562ac0b47f74546bd77cf
parenta6c4d67afd7bc10dd629542c2b88262f2e74bbb1 (diff)
downloadkotlinx.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.kt9
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)
}