diff --git a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinCompilation.kt b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinCompilation.kt index 9dd067fa6ee..e2b88f4398b 100644 --- a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinCompilation.kt +++ b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinCompilation.kt @@ -121,7 +121,7 @@ interface KotlinCompilation : Named, get() = target.disambiguationClassifier + name } -// TODO NOW: Revisit/Remove? +@Deprecated("Scheduled for removal with Kotlin 1.9") interface KotlinCompilationToRunnableFiles : KotlinCompilation { override val runtimeDependencyConfigurationName: String @@ -132,7 +132,7 @@ interface KotlinCompilationToRunnableFiles : } @Deprecated("Scheduled for removal with Kotlin 1.9") -@Suppress("EXTENSION_SHADOWED_BY_MEMBER") // kept for compatibility +@Suppress("EXTENSION_SHADOWED_BY_MEMBER", "deprecation") // kept for compatibility val KotlinCompilation.runtimeDependencyConfigurationName: String? get() = (this as? KotlinCompilationToRunnableFiles)?.runtimeDependencyConfigurationName diff --git a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinExecution.kt b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinExecution.kt index 7aebc8ae828..16bac9b159a 100644 --- a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinExecution.kt +++ b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinExecution.kt @@ -39,6 +39,7 @@ interface CompilationExecutionSource> : E val compilation: CompilationType } +@Suppress("deprecation") interface CompilationExecutionSourceSupport> { /** * Select a compilation to run the execution from. diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/AbstractKotlinCompilation.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/AbstractKotlinCompilation.kt index 6d8827e7cc9..a0c22fa2186 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/AbstractKotlinCompilation.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/AbstractKotlinCompilation.kt @@ -3,131 +3,13 @@ * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ +@file:Suppress("DEPRECATION") + package org.jetbrains.kotlin.gradle.plugin.mpp -import org.gradle.api.Action -import org.gradle.api.GradleException -import org.gradle.api.Project -import org.gradle.api.attributes.AttributeContainer -import org.gradle.api.file.FileCollection -import org.gradle.api.tasks.TaskProvider import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions -import org.jetbrains.kotlin.gradle.dsl.KotlinCompile -import org.jetbrains.kotlin.gradle.plugin.* -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinCompilationData -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask -import org.jetbrains.kotlin.gradle.tasks.locateTask -import org.jetbrains.kotlin.gradle.utils.ObservableSet -import org.jetbrains.kotlin.project.model.LanguageSettings -import org.jetbrains.kotlin.tooling.core.MutableExtras -import org.jetbrains.kotlin.tooling.core.mutableExtrasOf -import java.util.* +import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationImpl -abstract class AbstractKotlinCompilation( - internal open val compilationDetails: CompilationDetails, -) : InternalKotlinCompilation, - HasKotlinDependencies, - KotlinCompilationData { - - //region HasKotlinDependencies delegation: delegate members manually for better control and prevention of accidental overrides - private val kotlinDependenciesHolder get() = compilationDetails.kotlinDependenciesHolder - override val apiConfigurationName: String get() = kotlinDependenciesHolder.apiConfigurationName - override val implementationConfigurationName: String get() = kotlinDependenciesHolder.implementationConfigurationName - override val compileOnlyConfigurationName: String get() = kotlinDependenciesHolder.compileOnlyConfigurationName - override val runtimeOnlyConfigurationName: String get() = kotlinDependenciesHolder.runtimeOnlyConfigurationName - final override fun dependencies(configure: KotlinDependencyHandler.() -> Unit) = kotlinDependenciesHolder.dependencies(configure) - final override fun dependencies(configure: Action) = dependencies { configure.execute(this) } - //endregion - - //region KotlinCompilationData delegation: delegate members manually for better control and prevention of accidental overrides - private val compilationData get() = compilationDetails.compilationData - override val compileAllTaskName: String get() = compilationData.compileAllTaskName - final override val compilationPurpose: String get() = compilationData.compilationPurpose - final override val compilationClassifier: String? get() = compilationData.compilationClassifier - final override val languageSettings: LanguageSettings get() = compilationData.languageSettings - final override val ownModuleName: String get() = compilationData.ownModuleName - final override val moduleName: String get() = compilationData.moduleName - final override val friendPaths: Iterable get() = compilationData.friendPaths - final override val platformType: KotlinPlatformType get() = compilationData.platformType - final override val output: KotlinCompilationOutput get() = compilationData.output - final override val compileKotlinTaskName: String get() = compilationData.compileKotlinTaskName - - - override val compilerOptions: HasCompilerOptions<*> - get() = compilationData.compilerOptions - - @Suppress("DEPRECATION") - @Deprecated("Replaced by compilerOptions", replaceWith = ReplaceWith("compilerOptions.options")) - final override val kotlinOptions: T get() = compilationData.kotlinOptions - final override val kotlinSourceDirectoriesByFragmentName get() = compilationData.kotlinSourceDirectoriesByFragmentName - //endregion - - override val target: KotlinTarget get() = compilationDetails.target - - override val extras: MutableExtras = mutableExtrasOf() - - final override val compileDependencyConfigurationName: String - get() = compilationDetails.compileDependencyFilesHolder.dependencyConfigurationName - - final override var compileDependencyFiles: FileCollection - get() = compilationDetails.compileDependencyFilesHolder.dependencyFiles - set(value) { - compilationDetails.compileDependencyFilesHolder.dependencyFiles = value - } - - final override val kotlinSourceSets: ObservableSet - get() = compilationDetails.kotlinSourceSets - - override val allKotlinSourceSets: ObservableSet - get() = compilationDetails.allKotlinSourceSets - - override val defaultSourceSet: KotlinSourceSet get() = compilationDetails.defaultSourceSet - - final override val compilationName: String get() = compilationDetails.compilationData.compilationPurpose - - @Suppress("DEPRECATION") - @Deprecated("Replaced by compilerOptions.configure { }", replaceWith = ReplaceWith("compilerOptions.configure(configure)")) - override fun kotlinOptions(configure: T.() -> Unit) = - configure(kotlinOptions) - - @Suppress("DEPRECATION") - @Deprecated("Accessing task instance directly is deprecated", replaceWith = ReplaceWith("compileTaskProvider")) - override val compileKotlinTask: KotlinCompile - get() = compileKotlinTaskProvider.get() - - @Suppress("DEPRECATION") - @Deprecated("Replaced with compileTaskProvider", replaceWith = ReplaceWith("compileTaskProvider")) - override val compileKotlinTaskProvider: TaskProvider> - get() = target.project.locateTask(compileKotlinTaskName) ?: throw GradleException("Couldn't locate task $compileKotlinTaskName") - - override val compileTaskProvider: TaskProvider> - get() = target.project.locateTask(compileKotlinTaskName) ?: throw GradleException("Couldn't locate task $compileKotlinTaskName") - - private val attributeContainer by lazy { HierarchyAttributeContainer(target.attributes) } - - override fun getAttributes(): AttributeContainer = attributeContainer - - override fun defaultSourceSet(configure: KotlinSourceSet.() -> Unit) = defaultSourceSet.configure() - - override fun source(sourceSet: KotlinSourceSet) { - compilationDetails.source(sourceSet) - } - - override fun toString(): String = "compilation '$name' ($target)" - - override fun associateWith(other: KotlinCompilation<*>) { - compilationDetails.associateWith((other as AbstractKotlinCompilation<*>).compilationDetails) - } - - override val associateWith: List> - get() = Collections.unmodifiableList(compilationDetails.associateCompilations.map { it.compilation }) - - override val project: Project - get() = target.project - - override val owner: KotlinTarget - get() = target - - override val relatedConfigurationNames: List - get() = compilationDetails.kotlinDependenciesHolder.relatedConfigurationNames + compileDependencyConfigurationName -} \ No newline at end of file +@Deprecated("Use KotlinCompilation instead") +abstract class AbstractKotlinCompilation internal constructor(compilation: KotlinCompilationImpl) : + DecoratedKotlinCompilation(compilation) \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/AbstractKotlinCompilationToRunnableFiles.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/AbstractKotlinCompilationToRunnableFiles.kt index 98346138a41..8a72051266f 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/AbstractKotlinCompilationToRunnableFiles.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/AbstractKotlinCompilationToRunnableFiles.kt @@ -3,24 +3,25 @@ * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ +@file:Suppress("DEPRECATION") + package org.jetbrains.kotlin.gradle.plugin.mpp import org.gradle.api.file.FileCollection import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions import org.jetbrains.kotlin.gradle.plugin.KotlinCompilationToRunnableFiles +import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationImpl -abstract class AbstractKotlinCompilationToRunnableFiles( - override val compilationDetails: CompilationDetailsWithRuntime, -) : AbstractKotlinCompilation(compilationDetails), - KotlinCompilationToRunnableFiles { +@Deprecated("Use KotlinCompilation instead") +abstract class AbstractKotlinCompilationToRunnableFiles +internal constructor(compilation: KotlinCompilationImpl) : AbstractKotlinCompilation(compilation), KotlinCompilationToRunnableFiles { - final override val runtimeDependencyConfigurationName: String get() = compilationDetails.runtimeDependencyFilesHolder.dependencyConfigurationName - final override var runtimeDependencyFiles: FileCollection - get() = compilationDetails.runtimeDependencyFilesHolder.dependencyFiles - set(value) { - compilationDetails.runtimeDependencyFilesHolder.dependencyFiles = value - } + final override val runtimeDependencyConfigurationName: String + get() = compilation.runtimeDependencyConfigurationName ?: error("$compilation: Missing 'runtimeDependencyConfigurationName'") + + final override var runtimeDependencyFiles: FileCollection = + compilation.runtimeDependencyFiles ?: error("$compilation: Missing 'runtimeDependencyFiles'") override val relatedConfigurationNames: List - get() = super.relatedConfigurationNames + runtimeDependencyConfigurationName + get() = compilation.relatedConfigurationNames } \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/DecoratedKotlinCompilation.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/DecoratedKotlinCompilation.kt new file mode 100644 index 00000000000..70b44a1d97e --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/DecoratedKotlinCompilation.kt @@ -0,0 +1,27 @@ +/* + * 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. + */ + +@file:Suppress("UNCHECKED_CAST") + +package org.jetbrains.kotlin.gradle.plugin.mpp + +import org.jetbrains.kotlin.gradle.InternalKotlinGradlePluginApi +import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions +import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationImpl + +@InternalKotlinGradlePluginApi +abstract class DecoratedKotlinCompilation internal constructor( + internal val compilation: KotlinCompilationImpl, +) : InternalKotlinCompilation by compilation as InternalKotlinCompilation { + override fun toString(): String = compilation.toString() +} + +internal inline val InternalKotlinCompilation.decoratedInstance: DecoratedKotlinCompilation + get() = if (this is DecoratedKotlinCompilation) this + else (target.compilations.getByName(compilationName).internal.castKotlinOptionsType() as DecoratedKotlinCompilation) + +internal inline val InternalKotlinCompilation.decoratedInstanceOrNull: DecoratedKotlinCompilation? + get() = if (this is DecoratedKotlinCompilation) this + else (target.compilations.findByName(compilationName)?.internal?.castKotlinOptionsType() as? DecoratedKotlinCompilation) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/InternalKotlinCompilation.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/InternalKotlinCompilation.kt index 76f43984224..1c6f3bbd8f5 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/InternalKotlinCompilation.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/InternalKotlinCompilation.kt @@ -10,8 +10,6 @@ import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationModuleManager -import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationModuleManager.CompilationModule.Type.Auxiliary -import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationModuleManager.CompilationModule.Type.Main import org.jetbrains.kotlin.gradle.utils.ObservableSet import org.jetbrains.kotlin.tooling.core.MutableExtras @@ -20,28 +18,12 @@ internal interface InternalKotlinCompilation : Kotl override val kotlinSourceSets: ObservableSet override val allKotlinSourceSets: ObservableSet + val friendPaths: Iterable - - // TODO NOW: Remove default impl val compilationModule: KotlinCompilationModuleManager.CompilationModule - get() = KotlinCompilationModuleManager.CompilationModule( - compilationName = compilationName, - ownModuleName = project.provider { (this as AbstractKotlinCompilation<*>).ownModuleName }, - type = if (isMain()) Main else Auxiliary - ) - - // TODO NOW: Remove default impl - override val runtimeDependencyFiles: FileCollection? get() = null - override val runtimeDependencyConfigurationName: String? get() = null - val processResourcesTaskName: String? get() = null + val processResourcesTaskName: String? } -internal inline val InternalKotlinCompilation.decoratorInstance: InternalKotlinCompilation - get() = target.compilations.getByName(compilationName).internal.castKotlinOptionsType() - -internal inline val InternalKotlinCompilation.decoratorInstanceOrNull: InternalKotlinCompilation? - get() = target.compilations.findByName(compilationName)?.internal?.castKotlinOptionsType() - internal val KotlinCompilation.internal: InternalKotlinCompilation get() = (this as? InternalKotlinCompilation) ?: throw IllegalArgumentException( "KotlinCompilation($name) ${this::class} does not implement ${InternalKotlinCompilation::class}" diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinCommonCompilation.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinCommonCompilation.kt index 113630d4186..c7e5e004b2c 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinCommonCompilation.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinCommonCompilation.kt @@ -17,9 +17,8 @@ import javax.inject.Inject interface KotlinMetadataCompilation : KotlinCompilation -open class KotlinCommonCompilation @Inject internal constructor( - private val compilation: KotlinCompilationImpl -) : InternalKotlinCompilation by compilation, +open class KotlinCommonCompilation @Inject internal constructor(compilation: KotlinCompilationImpl) : + AbstractKotlinCompilation(compilation), KotlinMetadataCompilation { @Suppress("DEPRECATION") @Deprecated("Accessing task instance directly is deprecated", replaceWith = ReplaceWith("compileTaskProvider")) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/KotlinCompilationFriendPathsResolver.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/KotlinCompilationFriendPathsResolver.kt index a56cb8d9360..dee1b2734ee 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/KotlinCompilationFriendPathsResolver.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/KotlinCompilationFriendPathsResolver.kt @@ -90,7 +90,7 @@ internal class DefaultKotlinCompilationFriendPathsResolver( object AdditionalAndroidFriendArtifactResolver : FriendArtifactResolver { override fun resolveFriendArtifacts(compilation: InternalKotlinCompilation<*>): FileCollection { - return compilation.project.files((compilation.decoratorInstance as KotlinJvmAndroidCompilation).testedVariantArtifacts) + return compilation.project.files((compilation.decoratedInstance as KotlinJvmAndroidCompilation).testedVariantArtifacts) } } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/KotlinCompilationImpl.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/KotlinCompilationImpl.kt index d843cfc8073..743f3aee658 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/KotlinCompilationImpl.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/KotlinCompilationImpl.kt @@ -224,4 +224,8 @@ internal class KotlinCompilationImpl @Inject constructor( } //endregion + + override fun toString(): String { + return "compilation '$name' ($target)" + } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsCompilation.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsCompilation.kt index 8155d9a9f9f..0b830aff5d6 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsCompilation.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsCompilation.kt @@ -9,7 +9,6 @@ package org.jetbrains.kotlin.gradle.plugin.mpp import groovy.lang.Closure -import org.gradle.api.file.FileCollection import org.gradle.api.tasks.TaskProvider import org.jetbrains.kotlin.gradle.dsl.* import org.jetbrains.kotlin.gradle.plugin.* @@ -22,9 +21,8 @@ import org.jetbrains.kotlin.gradle.tasks.Kotlin2JsCompile import javax.inject.Inject open class KotlinJsCompilation @Inject internal constructor( - private val compilation: KotlinCompilationImpl -) : InternalKotlinCompilation by compilation.castKotlinOptionsType(), - KotlinCompilationToRunnableFiles { + compilation: KotlinCompilationImpl +) : AbstractKotlinCompilationToRunnableFiles(compilation) { @Suppress("UNCHECKED_CAST") final override val compilerOptions: HasCompilerOptions @@ -68,14 +66,6 @@ open class KotlinJsCompilation @Inject internal constructor( override val compileTaskProvider: TaskProvider get() = compilation.compileTaskProvider as TaskProvider - override val runtimeDependencyConfigurationName: String - get() = compilation.runtimeDependencyConfigurationName ?: error("Missing 'runtimeDependencyConfigurationName'") - - override var runtimeDependencyFiles: FileCollection = compilation.runtimeDependencyFiles ?: error("Missing 'runtimeDependencyFiles'") - - override val relatedConfigurationNames: List - get() = compilation.relatedConfigurationNames - internal val packageJsonHandlers = mutableListOf Unit>() fun packageJson(handler: PackageJson.() -> Unit) { diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrCompilation.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrCompilation.kt index d66de640729..c7cc37d2ab7 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrCompilation.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrCompilation.kt @@ -9,6 +9,4 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationImpl import javax.inject.Inject -open class KotlinJsIrCompilation @Inject internal constructor( - compilation: KotlinCompilationImpl -) : KotlinJsCompilation(compilation) \ No newline at end of file +open class KotlinJsIrCompilation @Inject internal constructor(compilation: KotlinCompilationImpl) : KotlinJsCompilation(compilation) \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmAndroidCompilation.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmAndroidCompilation.kt index 6df971021b8..edb60bcb595 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmAndroidCompilation.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmAndroidCompilation.kt @@ -14,17 +14,15 @@ import org.gradle.api.tasks.compile.JavaCompile import org.jetbrains.kotlin.gradle.dsl.CompilerJvmOptions import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions import org.jetbrains.kotlin.gradle.plugin.HasCompilerOptions -import org.jetbrains.kotlin.gradle.plugin.KotlinCompilationToRunnableFiles import org.jetbrains.kotlin.gradle.plugin.getJavaTaskProvider import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationImpl import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask import javax.inject.Inject open class KotlinJvmAndroidCompilation @Inject internal constructor( - private val compilation: KotlinCompilationImpl, + compilation: KotlinCompilationImpl, val androidVariant: BaseVariant -) : InternalKotlinCompilation by compilation.castKotlinOptionsType(), - KotlinCompilationToRunnableFiles { +) : AbstractKotlinCompilationToRunnableFiles(compilation) { override val target: KotlinAndroidTarget = compilation.target as KotlinAndroidTarget @@ -51,11 +49,6 @@ open class KotlinJvmAndroidCompilation @Inject internal constructor( val compileJavaTaskProvider: TaskProvider get() = androidVariant.getJavaTaskProvider() - override val runtimeDependencyConfigurationName: String - get() = compilation.runtimeDependencyConfigurationName ?: error("Missing 'runtimeDependencyConfigurationName'") - - override var runtimeDependencyFiles: FileCollection = compilation.runtimeDependencyFiles ?: error("Missing 'runtimeDependencyFiles'") - override val relatedConfigurationNames: List get() = compilation.relatedConfigurationNames + listOf( "${androidVariant.name}ApiElements", diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmCompilation.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmCompilation.kt index 080feb2076a..66f9fdd9d0b 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmCompilation.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinJvmCompilation.kt @@ -6,7 +6,6 @@ @file:Suppress("PackageDirectoryMismatch") // Old package for compatibility package org.jetbrains.kotlin.gradle.plugin.mpp -import org.gradle.api.file.FileCollection import org.gradle.api.tasks.TaskProvider import org.gradle.api.tasks.compile.JavaCompile import org.jetbrains.kotlin.gradle.dsl.CompilerCommonOptions @@ -14,7 +13,6 @@ import org.jetbrains.kotlin.gradle.dsl.CompilerJvmOptions import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions import org.jetbrains.kotlin.gradle.plugin.HasCompilerOptions -import org.jetbrains.kotlin.gradle.plugin.KotlinCompilationToRunnableFiles import org.jetbrains.kotlin.gradle.plugin.KotlinCompilationWithResources import org.jetbrains.kotlin.gradle.plugin.internal.JavaSourceSetsAccessor import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationImpl @@ -24,10 +22,9 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask import javax.inject.Inject open class KotlinJvmCompilation @Inject internal constructor( - private val compilation: KotlinCompilationImpl -) : InternalKotlinCompilation by compilation.castKotlinOptionsType(), - KotlinCompilationWithResources, - KotlinCompilationToRunnableFiles { + compilation: KotlinCompilationImpl +) : AbstractKotlinCompilationToRunnableFiles(compilation), + KotlinCompilationWithResources { override val target: KotlinJvmTarget = compilation.target as KotlinJvmTarget @@ -58,16 +55,8 @@ open class KotlinJvmCompilation @Inject internal constructor( project.tasks.withType(JavaCompile::class.java).named(javaSourceSet.compileJavaTaskName) } else null - override val runtimeDependencyConfigurationName: String - get() = compilation.runtimeDependencyConfigurationName ?: error("Missing 'runtimeDependencyConfigurationName'") - - override var runtimeDependencyFiles: FileCollection = compilation.runtimeDependencyFiles ?: error("Missing 'runtimeDependencyFiles'") - override val processResourcesTaskName: String get() = compilation.processResourcesTaskName ?: error("Missing 'processResourcesTaskName'") - - override val relatedConfigurationNames: List - get() = compilation.relatedConfigurationNames } //TODO SEB: Find a good spot for this function diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinWithJavaCompilation.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinWithJavaCompilation.kt index 36d041519ae..4a37bbec817 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinWithJavaCompilation.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/jvm/KotlinWithJavaCompilation.kt @@ -6,14 +6,12 @@ @file:Suppress("PackageDirectoryMismatch", "UNCHECKED_CAST") // Old package for compatibility package org.jetbrains.kotlin.gradle.plugin.mpp -import org.gradle.api.file.FileCollection import org.gradle.api.tasks.SourceSet import org.gradle.api.tasks.TaskProvider import org.gradle.api.tasks.compile.JavaCompile import org.jetbrains.kotlin.gradle.dsl.CompilerCommonOptions import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions import org.jetbrains.kotlin.gradle.plugin.HasCompilerOptions -import org.jetbrains.kotlin.gradle.plugin.KotlinCompilationToRunnableFiles import org.jetbrains.kotlin.gradle.plugin.KotlinCompilationWithResources import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationImpl import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile @@ -21,34 +19,21 @@ import org.jetbrains.kotlin.gradle.utils.named import javax.inject.Inject open class KotlinWithJavaCompilation @Inject internal constructor( - private val compilation: KotlinCompilationImpl, + compilation: KotlinCompilationImpl, val javaSourceSet: SourceSet, -) : InternalKotlinCompilation by compilation as InternalKotlinCompilation, - KotlinCompilationWithResources, - KotlinCompilationToRunnableFiles { +) : AbstractKotlinCompilationToRunnableFiles(compilation), + KotlinCompilationWithResources { @Suppress("UNCHECKED_CAST") override val compilerOptions: HasCompilerOptions = compilation.compilerOptions as HasCompilerOptions - @Suppress("UNCHECKED_CAST") - override val kotlinOptions: KotlinOptionsType - get() = compilation.kotlinOptions as KotlinOptionsType - val compileJavaTaskProvider: TaskProvider get() = target.project.tasks.withType(JavaCompile::class.java).named(javaSourceSet.compileJavaTaskName) - override val runtimeDependencyConfigurationName: String - get() = compilation.runtimeDependencyConfigurationName ?: error("Missing 'runtimeDependencyConfigurationName'") - - override var runtimeDependencyFiles: FileCollection = compilation.runtimeDependencyFiles ?: error("Missing 'runtimeDependencyFiles'") - override val processResourcesTaskName: String get() = compilation.processResourcesTaskName ?: error("Missing 'processResourcesTaskName'") - override val relatedConfigurationNames: List - get() = compilation.relatedConfigurationNames - fun source(javaSourceSet: SourceSet) { with(target.project) { afterEvaluate { diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeCompilation.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeCompilation.kt index 438b1c1df64..2d0b5ec0321 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeCompilation.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeCompilation.kt @@ -22,9 +22,9 @@ import java.util.concurrent.Callable import javax.inject.Inject abstract class AbstractKotlinNativeCompilation internal constructor( - private val compilation: KotlinCompilationImpl, + compilation: KotlinCompilationImpl, val konanTarget: KonanTarget -) : InternalKotlinCompilation by compilation.castKotlinOptionsType() { +) : AbstractKotlinCompilation(compilation) { @Suppress("DEPRECATION") @Deprecated("Accessing task instance directly is deprecated", replaceWith = ReplaceWith("compileTaskProvider")) @@ -49,7 +49,7 @@ abstract class AbstractKotlinNativeCompilation internal constructor( } open class KotlinNativeCompilation @Inject internal constructor( - konanTarget: KonanTarget, private val compilation: KotlinCompilationImpl, + konanTarget: KonanTarget, compilation: KotlinCompilationImpl, ) : AbstractKotlinNativeCompilation(compilation, konanTarget) { final override val target: KotlinNativeTarget @@ -94,5 +94,4 @@ internal fun addSourcesToKotlinNativeCompileTask( task.setSource(sourceFiles) task.commonSources.from(project.files(Callable { if (addAsCommonSources.value) sourceFiles() else emptyList() })) } - } \ No newline at end of file