diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/factory/AndroidCompilationSourceSetsContainerFactory.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/factory/AndroidCompilationSourceSetsContainerFactory.kt deleted file mode 100644 index b646385c70c..00000000000 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/factory/AndroidCompilationSourceSetsContainerFactory.kt +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright 2010-2022 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 - -import com.android.build.gradle.api.BaseVariant -import org.jetbrains.kotlin.gradle.dsl.kotlinExtension -import org.jetbrains.kotlin.gradle.plugin.KotlinTarget -import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTarget -import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationSourceSetsContainer -import org.jetbrains.kotlin.gradle.plugin.sources.android.kotlinAndroidSourceSetLayout -import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName - -internal class AndroidCompilationSourceSetsContainerFactory( - private val target: KotlinAndroidTarget, private val variant: BaseVariant -) : KotlinCompilationImplFactory.KotlinCompilationSourceSetsContainerFactory { - override fun create(target: KotlinTarget, compilationName: String): KotlinCompilationSourceSetsContainer { - val sourceSetName = target.project.kotlinAndroidSourceSetLayout.naming.defaultKotlinSourceSetName(this.target, variant) - ?: lowerCamelCaseName(target.disambiguationClassifier, compilationName) - return KotlinCompilationSourceSetsContainer(target.project.kotlinExtension.sourceSets.maybeCreate(sourceSetName)) - } -} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/factory/DefaultKotlinCompilationSourceSetsContainerFactory.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/factory/DefaultKotlinCompilationSourceSetsContainerFactory.kt deleted file mode 100644 index 387acb7db6f..00000000000 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/factory/DefaultKotlinCompilationSourceSetsContainerFactory.kt +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright 2010-2022 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 - -import org.jetbrains.kotlin.gradle.dsl.kotlinExtension -import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation -import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet -import org.jetbrains.kotlin.gradle.plugin.KotlinTarget -import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinMetadataTarget -import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationSourceSetsContainer -import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName - -internal class DefaultKotlinCompilationSourceSetsContainerFactory( - private val defaultSourceSetNaming: DefaultSourceSetNaming = DefaultDefaultSourceSetNaming -) : KotlinCompilationImplFactory.KotlinCompilationSourceSetsContainerFactory { - - fun interface DefaultSourceSetNaming { - fun defaultSourceSetName(target: KotlinTarget, compilationName: String): String - } - - object DefaultDefaultSourceSetNaming : DefaultSourceSetNaming { - override fun defaultSourceSetName(target: KotlinTarget, compilationName: String): String = lowerCamelCaseName( - target.disambiguationClassifier.takeIf { target !is KotlinMetadataTarget }, - if (compilationName == KotlinCompilation.MAIN_COMPILATION_NAME && target is KotlinMetadataTarget) - KotlinSourceSet.COMMON_MAIN_SOURCE_SET_NAME - else compilationName - ) - } - - override fun create(target: KotlinTarget, compilationName: String): KotlinCompilationSourceSetsContainer { - val defaultSourceSetName = defaultSourceSetNaming.defaultSourceSetName(target, compilationName) - val defaultSourceSet = target.project.kotlinExtension.sourceSets.maybeCreate(defaultSourceSetName) - return KotlinCompilationSourceSetsContainer(defaultSourceSet) - } -} diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/factory/JsCompilationSourceSetsContainerFactory.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/factory/JsCompilationSourceSetsContainerFactory.kt deleted file mode 100644 index 1863d5d4bb0..00000000000 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/factory/JsCompilationSourceSetsContainerFactory.kt +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright 2010-2022 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 - -import org.jetbrains.kotlin.gradle.dsl.kotlinExtension -import org.jetbrains.kotlin.gradle.plugin.KotlinTarget -import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationSourceSetsContainer -import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget -import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName - -internal object JsCompilationSourceSetsContainerFactory : KotlinCompilationImplFactory.KotlinCompilationSourceSetsContainerFactory { - override fun create(target: KotlinTarget, compilationName: String): KotlinCompilationSourceSetsContainer { - return KotlinCompilationSourceSetsContainer( - target.project.kotlinExtension.sourceSets.maybeCreate(defaultSourceSetName(target, compilationName)) - ) - } - - private fun defaultSourceSetName(target: KotlinTarget, compilationName: String): String { - val classifier = if (target is KotlinJsTarget && target.irTarget != null) - target.disambiguationClassifierInPlatform - else target.disambiguationClassifier - - return lowerCamelCaseName( - classifier, - compilationName - ) - } -} diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/factory/JsIrCompilationSourceSetsContainerFactory.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/factory/JsIrCompilationSourceSetsContainerFactory.kt deleted file mode 100644 index 8c06d3fa523..00000000000 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/factory/JsIrCompilationSourceSetsContainerFactory.kt +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright 2010-2022 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 - -import org.jetbrains.kotlin.gradle.dsl.kotlinExtension -import org.jetbrains.kotlin.gradle.plugin.KotlinTarget -import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationSourceSetsContainer -import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTarget -import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName - -internal object JsIrCompilationSourceSetsContainerFactory : KotlinCompilationImplFactory.KotlinCompilationSourceSetsContainerFactory { - override fun create(target: KotlinTarget, compilationName: String): KotlinCompilationSourceSetsContainer { - return KotlinCompilationSourceSetsContainer( - target.project.kotlinExtension.sourceSets.maybeCreate(defaultSourceSetName(target, compilationName)) - ) - } - - private fun defaultSourceSetName(target: KotlinTarget, compilationName: String): String { - return lowerCamelCaseName( - if (target is KotlinJsIrTarget && target.mixedMode) - target.disambiguationClassifierInPlatform - else target.disambiguationClassifier, - compilationName - ) - } -} diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/factory/KotlinCompilationSourceSetsContainerFactories.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/factory/KotlinCompilationSourceSetsContainerFactories.kt new file mode 100644 index 00000000000..50be528080f --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/factory/KotlinCompilationSourceSetsContainerFactories.kt @@ -0,0 +1,77 @@ +/* + * Copyright 2010-2022 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 + +import com.android.build.gradle.api.BaseVariant +import org.jetbrains.kotlin.gradle.dsl.kotlinExtension +import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation +import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet +import org.jetbrains.kotlin.gradle.plugin.KotlinTarget +import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTarget +import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinMetadataTarget +import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationSourceSetsContainer +import org.jetbrains.kotlin.gradle.plugin.sources.android.kotlinAndroidSourceSetLayout +import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget +import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTarget +import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName + +internal class DefaultKotlinCompilationSourceSetsContainerFactory( + private val defaultSourceSetNaming: DefaultSourceSetNaming = DefaultDefaultSourceSetNaming +) : KotlinCompilationImplFactory.KotlinCompilationSourceSetsContainerFactory { + + fun interface DefaultSourceSetNaming { + fun defaultSourceSetName(target: KotlinTarget, compilationName: String): String + } + + object DefaultDefaultSourceSetNaming : DefaultSourceSetNaming { + override fun defaultSourceSetName(target: KotlinTarget, compilationName: String): String = lowerCamelCaseName( + target.disambiguationClassifier.takeIf { target !is KotlinMetadataTarget }, + if (compilationName == KotlinCompilation.MAIN_COMPILATION_NAME && target is KotlinMetadataTarget) + KotlinSourceSet.COMMON_MAIN_SOURCE_SET_NAME + else compilationName + ) + } + + override fun create(target: KotlinTarget, compilationName: String): KotlinCompilationSourceSetsContainer { + val defaultSourceSetName = defaultSourceSetNaming.defaultSourceSetName(target, compilationName) + val defaultSourceSet = target.project.kotlinExtension.sourceSets.maybeCreate(defaultSourceSetName) + return KotlinCompilationSourceSetsContainer(defaultSourceSet) + } +} + +internal class AndroidCompilationSourceSetsContainerFactory( + private val target: KotlinAndroidTarget, private val variant: BaseVariant +) : KotlinCompilationImplFactory.KotlinCompilationSourceSetsContainerFactory { + override fun create(target: KotlinTarget, compilationName: String): KotlinCompilationSourceSetsContainer { + val sourceSetName = target.project.kotlinAndroidSourceSetLayout.naming.defaultKotlinSourceSetName(this.target, variant) + ?: lowerCamelCaseName(target.disambiguationClassifier, compilationName) + return KotlinCompilationSourceSetsContainer(target.project.kotlinExtension.sourceSets.maybeCreate(sourceSetName)) + } +} + +internal object JsCompilationSourceSetsContainerFactory : KotlinCompilationImplFactory.KotlinCompilationSourceSetsContainerFactory { + override fun create(target: KotlinTarget, compilationName: String): KotlinCompilationSourceSetsContainer { + val defaultSourceSetName = lowerCamelCaseName( + if (target is KotlinJsTarget && target.irTarget != null) target.disambiguationClassifierInPlatform + else target.disambiguationClassifier, + compilationName + ) + + return KotlinCompilationSourceSetsContainer(target.project.kotlinExtension.sourceSets.maybeCreate(defaultSourceSetName)) + } +} + +internal object JsIrCompilationSourceSetsContainerFactory : KotlinCompilationImplFactory.KotlinCompilationSourceSetsContainerFactory { + override fun create(target: KotlinTarget, compilationName: String): KotlinCompilationSourceSetsContainer { + val defaultSourceSetName = lowerCamelCaseName( + if (target is KotlinJsIrTarget && target.mixedMode) target.disambiguationClassifierInPlatform + else target.disambiguationClassifier, + compilationName + ) + + return KotlinCompilationSourceSetsContainer(target.project.kotlinExtension.sourceSets.maybeCreate(defaultSourceSetName)) + } +}