[Gradle, MPP] Make KotlinCompileCommon task cc-compatible with warnings
Kotlin options are accessed via compilation. Compilation field is marked as transient and so not available after deserializing task from Gradle configuration cache. Accessing 'isCompatibilityMetadataVariantEnabled' property via project in tasks 'onlyIf' causes Gradle to project instance serialization attempt that fails (#KT-43141, #KT-43329) Fixed
This commit is contained in:
+3
-2
@@ -65,14 +65,15 @@ class KotlinMetadataTargetConfigurator(kotlinPluginVersion: String) :
|
||||
KotlinBuildStatsService.getInstance()?.report(BooleanMetrics.ENABLED_HMPP, true)
|
||||
|
||||
target.compilations.withType(KotlinCommonCompilation::class.java).getByName(KotlinCompilation.MAIN_COMPILATION_NAME).run {
|
||||
if (target.project.isCompatibilityMetadataVariantEnabled) {
|
||||
val isCompatibilityMetadataVariantEnabled = target.project.isCompatibilityMetadataVariantEnabled
|
||||
if (isCompatibilityMetadataVariantEnabled) {
|
||||
// Force the default 'main' compilation to produce *.kotlin_metadata regardless of the klib feature flag.
|
||||
forceCompilationToKotlinMetadata = true
|
||||
} else {
|
||||
// Clear the dependencies of the compilation so that they don't take time resolving during task graph construction:
|
||||
compileDependencyFiles = target.project.files()
|
||||
}
|
||||
compileKotlinTaskProvider.configure { it.onlyIf { target.project.isCompatibilityMetadataVariantEnabled } }
|
||||
compileKotlinTaskProvider.configure { it.onlyIf { isCompatibilityMetadataVariantEnabled } }
|
||||
}
|
||||
|
||||
createMergedAllSourceSetsConfigurations(target)
|
||||
|
||||
+2
-2
@@ -40,8 +40,8 @@ import java.io.File
|
||||
@CacheableTask
|
||||
open class KotlinCompileCommon : AbstractKotlinCompile<K2MetadataCompilerArguments>(), KotlinCommonCompile {
|
||||
|
||||
override val kotlinOptions: KotlinMultiplatformCommonOptions
|
||||
get() = taskData.compilation.kotlinOptions as KotlinMultiplatformCommonOptionsImpl
|
||||
override val kotlinOptions: KotlinMultiplatformCommonOptions =
|
||||
taskData.compilation.kotlinOptions as KotlinMultiplatformCommonOptionsImpl
|
||||
|
||||
override fun createCompilerArgs(): K2MetadataCompilerArguments =
|
||||
K2MetadataCompilerArguments()
|
||||
|
||||
Reference in New Issue
Block a user