From 67d933185a0dd950f6c2782aebf2aba0e509e731 Mon Sep 17 00:00:00 2001 From: Anton Lakotka Date: Mon, 12 Jun 2023 09:11:27 +0200 Subject: [PATCH] [Gradle] Apply Language Settings in the correct Lifecycle Stages After introduction of KGP Lifecycle stages the application of Language Settings to Targets and Compilation (from source set level) wasn't synchronized. Which led to data flow race. Delaying this application to correct stages solves the data flow race. ^KT-59063 --- .../gradle/targets/native/KotlinNativeTargetConfigurator.kt | 2 +- .../gradle/tasks/configuration/AbstractKotlinCompileConfig.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetConfigurator.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetConfigurator.kt index 54d74c1c0ca..f9749ee82b4 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetConfigurator.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetConfigurator.kt @@ -241,7 +241,7 @@ open class KotlinNativeTargetConfigurator : AbstractKotl project.syncLanguageSettingsToLinkTask(binary) } } - project.runOnceAfterEvaluated("Sync native compilation language settings to compiler options") { + project.launchInStage(KotlinPluginLifecycle.Stage.FinaliseCompilations) { target.compilations.all { compilation -> compilation.compilerOptions.syncLanguageSettings(compilation.defaultSourceSet.languageSettings) } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/AbstractKotlinCompileConfig.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/AbstractKotlinCompileConfig.kt index 71cff59ee6c..e73f62b7ec1 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/AbstractKotlinCompileConfig.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/AbstractKotlinCompileConfig.kt @@ -48,7 +48,7 @@ internal abstract class AbstractKotlinCompileConfig - project.runOnceAfterEvaluated("apply properties and language settings to ${taskProvider.name}") { + project.launchInStage(KotlinPluginLifecycle.Stage.AfterFinaliseCompilations) { taskProvider.configure { // KaptGenerateStubs will receive value from linked KotlinCompile task if (it is KaptGenerateStubsTask) return@configure