[Gradle] Move KotlinCompilationK2MultiplatformConfigurator into 'DefaultKotlinCompilationPreConfigure'
^KT-56210 Verification Pending
This commit is contained in:
committed by
Space Team
parent
b90207edb9
commit
a30abcb00c
+12
@@ -0,0 +1,12 @@
|
||||
/*
|
||||
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl
|
||||
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.factory.KotlinCompilationImplFactory
|
||||
|
||||
internal val DefaultKotlinCompilationPostConfigure = KotlinCompilationImplFactory.PostConfigure.composite(
|
||||
KotlinCompilationRegisterInSourceSetsConfigurator
|
||||
)
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
/*
|
||||
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl
|
||||
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.factory.KotlinCompilationImplFactory
|
||||
|
||||
internal val DefaultKotlinCompilationPreConfigure = KotlinCompilationImplFactory.PreConfigure.composite(
|
||||
KotlinCompilationLanguageVersionConfigurator, KotlinCompilationK2MultiplatformConfigurator
|
||||
)
|
||||
+4
-4
@@ -1,15 +1,15 @@
|
||||
/*
|
||||
* Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.factory
|
||||
package org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl
|
||||
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.DecoratedKotlinCompilation
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.InternalKotlinCompilation
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.factory.KotlinCompilationImplFactory
|
||||
import org.jetbrains.kotlin.gradle.plugin.sources.internal
|
||||
|
||||
internal object DefaultKotlinCompilationPostConfigure : KotlinCompilationImplFactory.PostConfigure {
|
||||
internal object KotlinCompilationRegisterInSourceSetsConfigurator : KotlinCompilationImplFactory.PostConfigure {
|
||||
override fun configure(compilation: DecoratedKotlinCompilation<*>) {
|
||||
/* Ensure proper tracking of compilations in the source sets */
|
||||
compilation.allKotlinSourceSets.forAll { sourceSet ->
|
||||
+18
-10
@@ -42,10 +42,7 @@ internal class KotlinCompilationImplFactory(
|
||||
DefaultProcessResourcesTaskNameFactory,
|
||||
|
||||
private val preConfigureAction: PreConfigure =
|
||||
PreConfigure.composite(
|
||||
KotlinCompilationK2MultiplatformConfigurator,
|
||||
KotlinCompilationLanguageVersionConfigurator
|
||||
),
|
||||
DefaultKotlinCompilationPreConfigure,
|
||||
|
||||
private val postConfigureAction: PostConfigure =
|
||||
DefaultKotlinCompilationPostConfigure
|
||||
@@ -125,11 +122,26 @@ internal class KotlinCompilationImplFactory(
|
||||
|
||||
return compilation
|
||||
}
|
||||
}
|
||||
|
||||
internal operator fun KotlinCompilationImplFactory.PreConfigure.plus(
|
||||
other: KotlinCompilationImplFactory.PreConfigure
|
||||
): KotlinCompilationImplFactory.PreConfigure {
|
||||
val thisElements = if (this is CompositePreConfigure) this.elements else listOf(this)
|
||||
val otherElements = if (other is CompositePreConfigure) other.elements else listOf(other)
|
||||
return CompositePreConfigure(thisElements + otherElements)
|
||||
}
|
||||
|
||||
internal operator fun KotlinCompilationImplFactory.PostConfigure.plus(
|
||||
other: KotlinCompilationImplFactory.PostConfigure
|
||||
): KotlinCompilationImplFactory.PostConfigure {
|
||||
val thisElements = if (this is CompositePostConfigure) this.elements else listOf(this)
|
||||
val otherElements = if (other is CompositePostConfigure) other.elements else listOf(other)
|
||||
return CompositePostConfigure(thisElements + otherElements)
|
||||
}
|
||||
|
||||
private class CompositePreConfigure(
|
||||
private val elements: List<KotlinCompilationImplFactory.PreConfigure>
|
||||
val elements: List<KotlinCompilationImplFactory.PreConfigure>
|
||||
) : KotlinCompilationImplFactory.PreConfigure {
|
||||
override fun configure(compilation: KotlinCompilationImpl) {
|
||||
elements.forEach { element -> element.configure(compilation) }
|
||||
@@ -137,13 +149,9 @@ private class CompositePreConfigure(
|
||||
}
|
||||
|
||||
private class CompositePostConfigure(
|
||||
private val elements: List<KotlinCompilationImplFactory.PostConfigure>
|
||||
val elements: List<KotlinCompilationImplFactory.PostConfigure>
|
||||
) : KotlinCompilationImplFactory.PostConfigure {
|
||||
override fun configure(compilation: DecoratedKotlinCompilation<*>) {
|
||||
elements.forEach { element -> element.configure(compilation) }
|
||||
}
|
||||
}
|
||||
|
||||
private object EmptyPreConfigure : KotlinCompilationImplFactory.PreConfigure {
|
||||
override fun configure(compilation: KotlinCompilationImpl) = Unit
|
||||
}
|
||||
|
||||
+3
-1
@@ -9,10 +9,12 @@ package org.jetbrains.kotlin.gradle.plugin.mpp
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptions
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions
|
||||
import org.jetbrains.kotlin.gradle.plugin.HasCompilerOptions
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.DefaultKotlinCompilationPreConfigure
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinJvmCompilationAssociator
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.factory.JvmWithJavaCompilationDependencyConfigurationsFactory
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.factory.JvmWithJavaCompilationTaskNamesContainerFactory
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.factory.KotlinCompilationImplFactory
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.factory.plus
|
||||
import org.jetbrains.kotlin.gradle.utils.filesProvider
|
||||
|
||||
class KotlinWithJavaCompilationFactory<KotlinOptionsType : KotlinCommonOptions, CO : KotlinCommonCompilerOptions> internal constructor(
|
||||
@@ -52,7 +54,7 @@ class KotlinWithJavaCompilationFactory<KotlinOptionsType : KotlinCommonOptions,
|
||||
compilationTaskNamesContainerFactory = JvmWithJavaCompilationTaskNamesContainerFactory(javaSourceSet),
|
||||
|
||||
/* Use compile & runtime classpath from javaSourceSet by default */
|
||||
preConfigureAction = { compilation ->
|
||||
preConfigureAction = DefaultKotlinCompilationPreConfigure + { compilation ->
|
||||
compilation.compileDependencyFiles = project.filesProvider { javaSourceSet.compileClasspath }
|
||||
compilation.runtimeDependencyFiles = project.filesProvider { javaSourceSet.runtimeClasspath }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user