[Gradle] Restore AbstractKotlinCompilation and AbstractKotlinCompilationToRunnableFiles...
... into KotlinCompilation class hierarchy (scheduled for removal later) KT-54312
This commit is contained in:
committed by
Space Team
parent
1737daea55
commit
69b7cef2e2
+2
-2
@@ -121,7 +121,7 @@ interface KotlinCompilation<out T : KotlinCommonOptionsDeprecated> : Named,
|
||||
get() = target.disambiguationClassifier + name
|
||||
}
|
||||
|
||||
// TODO NOW: Revisit/Remove?
|
||||
@Deprecated("Scheduled for removal with Kotlin 1.9")
|
||||
interface KotlinCompilationToRunnableFiles<T : KotlinCommonOptionsDeprecated> : KotlinCompilation<T> {
|
||||
override val runtimeDependencyConfigurationName: String
|
||||
|
||||
@@ -132,7 +132,7 @@ interface KotlinCompilationToRunnableFiles<T : KotlinCommonOptionsDeprecated> :
|
||||
}
|
||||
|
||||
@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 <T : KotlinCommonOptionsDeprecated> KotlinCompilation<T>.runtimeDependencyConfigurationName: String?
|
||||
get() = (this as? KotlinCompilationToRunnableFiles<T>)?.runtimeDependencyConfigurationName
|
||||
|
||||
|
||||
+1
@@ -39,6 +39,7 @@ interface CompilationExecutionSource<CompilationType : KotlinCompilation<*>> : E
|
||||
val compilation: CompilationType
|
||||
}
|
||||
|
||||
@Suppress("deprecation")
|
||||
interface CompilationExecutionSourceSupport<in T : KotlinCompilationToRunnableFiles<*>> {
|
||||
/**
|
||||
* Select a compilation to run the execution from.
|
||||
|
||||
+6
-124
@@ -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<T : KotlinCommonOptions>(
|
||||
internal open val compilationDetails: CompilationDetails<T>,
|
||||
) : InternalKotlinCompilation<T>,
|
||||
HasKotlinDependencies,
|
||||
KotlinCompilationData<T> {
|
||||
|
||||
//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<KotlinDependencyHandler>) = 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<FileCollection> 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<KotlinSourceSet>
|
||||
get() = compilationDetails.kotlinSourceSets
|
||||
|
||||
override val allKotlinSourceSets: ObservableSet<KotlinSourceSet>
|
||||
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<T>
|
||||
get() = compileKotlinTaskProvider.get()
|
||||
|
||||
@Suppress("DEPRECATION")
|
||||
@Deprecated("Replaced with compileTaskProvider", replaceWith = ReplaceWith("compileTaskProvider"))
|
||||
override val compileKotlinTaskProvider: TaskProvider<out KotlinCompile<T>>
|
||||
get() = target.project.locateTask(compileKotlinTaskName) ?: throw GradleException("Couldn't locate task $compileKotlinTaskName")
|
||||
|
||||
override val compileTaskProvider: TaskProvider<out KotlinCompilationTask<*>>
|
||||
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<KotlinCompilation<*>>
|
||||
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<String>
|
||||
get() = compilationDetails.kotlinDependenciesHolder.relatedConfigurationNames + compileDependencyConfigurationName
|
||||
}
|
||||
@Deprecated("Use KotlinCompilation<T> instead")
|
||||
abstract class AbstractKotlinCompilation<T : KotlinCommonOptions> internal constructor(compilation: KotlinCompilationImpl) :
|
||||
DecoratedKotlinCompilation<T>(compilation)
|
||||
+12
-11
@@ -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<T : KotlinCommonOptions>(
|
||||
override val compilationDetails: CompilationDetailsWithRuntime<T>,
|
||||
) : AbstractKotlinCompilation<T>(compilationDetails),
|
||||
KotlinCompilationToRunnableFiles<T> {
|
||||
@Deprecated("Use KotlinCompilation<T> instead")
|
||||
abstract class AbstractKotlinCompilationToRunnableFiles<T : KotlinCommonOptions>
|
||||
internal constructor(compilation: KotlinCompilationImpl) : AbstractKotlinCompilation<T>(compilation), KotlinCompilationToRunnableFiles<T> {
|
||||
|
||||
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<String>
|
||||
get() = super<AbstractKotlinCompilation>.relatedConfigurationNames + runtimeDependencyConfigurationName
|
||||
get() = compilation.relatedConfigurationNames
|
||||
}
|
||||
+27
@@ -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<T : KotlinCommonOptions> internal constructor(
|
||||
internal val compilation: KotlinCompilationImpl,
|
||||
) : InternalKotlinCompilation<T> by compilation as InternalKotlinCompilation<T> {
|
||||
override fun toString(): String = compilation.toString()
|
||||
}
|
||||
|
||||
internal inline val <reified T : KotlinCommonOptions> InternalKotlinCompilation<T>.decoratedInstance: DecoratedKotlinCompilation<T>
|
||||
get() = if (this is DecoratedKotlinCompilation<T>) this
|
||||
else (target.compilations.getByName(compilationName).internal.castKotlinOptionsType<T>() as DecoratedKotlinCompilation<T>)
|
||||
|
||||
internal inline val <reified T : KotlinCommonOptions> InternalKotlinCompilation<T>.decoratedInstanceOrNull: DecoratedKotlinCompilation<T>?
|
||||
get() = if (this is DecoratedKotlinCompilation<T>) this
|
||||
else (target.compilations.findByName(compilationName)?.internal?.castKotlinOptionsType<T>() as? DecoratedKotlinCompilation<T>)
|
||||
+2
-20
@@ -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<out T : KotlinCommonOptions> : Kotl
|
||||
|
||||
override val kotlinSourceSets: ObservableSet<KotlinSourceSet>
|
||||
override val allKotlinSourceSets: ObservableSet<KotlinSourceSet>
|
||||
|
||||
val friendPaths: Iterable<FileCollection>
|
||||
|
||||
// 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 <reified T : KotlinCommonOptions> InternalKotlinCompilation<T>.decoratorInstance: InternalKotlinCompilation<T>
|
||||
get() = target.compilations.getByName(compilationName).internal.castKotlinOptionsType()
|
||||
|
||||
internal inline val <reified T : KotlinCommonOptions> InternalKotlinCompilation<T>.decoratorInstanceOrNull: InternalKotlinCompilation<T>?
|
||||
get() = target.compilations.findByName(compilationName)?.internal?.castKotlinOptionsType()
|
||||
|
||||
internal val <T : KotlinCommonOptions> KotlinCompilation<T>.internal: InternalKotlinCompilation<T>
|
||||
get() = (this as? InternalKotlinCompilation<T>) ?: throw IllegalArgumentException(
|
||||
"KotlinCompilation($name) ${this::class} does not implement ${InternalKotlinCompilation::class}"
|
||||
|
||||
+2
-3
@@ -17,9 +17,8 @@ import javax.inject.Inject
|
||||
|
||||
interface KotlinMetadataCompilation<T : KotlinCommonOptions> : KotlinCompilation<T>
|
||||
|
||||
open class KotlinCommonCompilation @Inject internal constructor(
|
||||
private val compilation: KotlinCompilationImpl
|
||||
) : InternalKotlinCompilation<KotlinCommonOptions> by compilation,
|
||||
open class KotlinCommonCompilation @Inject internal constructor(compilation: KotlinCompilationImpl) :
|
||||
AbstractKotlinCompilation<KotlinCommonOptions>(compilation),
|
||||
KotlinMetadataCompilation<KotlinCommonOptions> {
|
||||
@Suppress("DEPRECATION")
|
||||
@Deprecated("Accessing task instance directly is deprecated", replaceWith = ReplaceWith("compileTaskProvider"))
|
||||
|
||||
+1
-1
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+4
@@ -224,4 +224,8 @@ internal class KotlinCompilationImpl @Inject constructor(
|
||||
}
|
||||
|
||||
//endregion
|
||||
|
||||
override fun toString(): String {
|
||||
return "compilation '$name' ($target)"
|
||||
}
|
||||
}
|
||||
|
||||
+2
-12
@@ -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<KotlinJsOptions> by compilation.castKotlinOptionsType(),
|
||||
KotlinCompilationToRunnableFiles<KotlinJsOptions> {
|
||||
compilation: KotlinCompilationImpl
|
||||
) : AbstractKotlinCompilationToRunnableFiles<KotlinJsOptions>(compilation) {
|
||||
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
final override val compilerOptions: HasCompilerOptions<CompilerJsOptions>
|
||||
@@ -68,14 +66,6 @@ open class KotlinJsCompilation @Inject internal constructor(
|
||||
override val compileTaskProvider: TaskProvider<Kotlin2JsCompile>
|
||||
get() = compilation.compileTaskProvider as TaskProvider<Kotlin2JsCompile>
|
||||
|
||||
override val runtimeDependencyConfigurationName: String
|
||||
get() = compilation.runtimeDependencyConfigurationName ?: error("Missing 'runtimeDependencyConfigurationName'")
|
||||
|
||||
override var runtimeDependencyFiles: FileCollection = compilation.runtimeDependencyFiles ?: error("Missing 'runtimeDependencyFiles'")
|
||||
|
||||
override val relatedConfigurationNames: List<String>
|
||||
get() = compilation.relatedConfigurationNames
|
||||
|
||||
internal val packageJsonHandlers = mutableListOf<PackageJson.() -> Unit>()
|
||||
|
||||
fun packageJson(handler: PackageJson.() -> Unit) {
|
||||
|
||||
+1
-3
@@ -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)
|
||||
open class KotlinJsIrCompilation @Inject internal constructor(compilation: KotlinCompilationImpl) : KotlinJsCompilation(compilation)
|
||||
+2
-9
@@ -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<KotlinJvmOptions> by compilation.castKotlinOptionsType(),
|
||||
KotlinCompilationToRunnableFiles<KotlinJvmOptions> {
|
||||
) : AbstractKotlinCompilationToRunnableFiles<KotlinJvmOptions>(compilation) {
|
||||
|
||||
override val target: KotlinAndroidTarget = compilation.target as KotlinAndroidTarget
|
||||
|
||||
@@ -51,11 +49,6 @@ open class KotlinJvmAndroidCompilation @Inject internal constructor(
|
||||
val compileJavaTaskProvider: TaskProvider<out JavaCompile>
|
||||
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<String>
|
||||
get() = compilation.relatedConfigurationNames + listOf(
|
||||
"${androidVariant.name}ApiElements",
|
||||
|
||||
+3
-14
@@ -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<KotlinJvmOptions> by compilation.castKotlinOptionsType(),
|
||||
KotlinCompilationWithResources<KotlinJvmOptions>,
|
||||
KotlinCompilationToRunnableFiles<KotlinJvmOptions> {
|
||||
compilation: KotlinCompilationImpl
|
||||
) : AbstractKotlinCompilationToRunnableFiles<KotlinJvmOptions>(compilation),
|
||||
KotlinCompilationWithResources<KotlinJvmOptions> {
|
||||
|
||||
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<String>
|
||||
get() = compilation.relatedConfigurationNames
|
||||
}
|
||||
|
||||
//TODO SEB: Find a good spot for this function
|
||||
|
||||
+3
-18
@@ -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<KotlinOptionsType : KotlinCommonOptions, CO : CompilerCommonOptions> @Inject internal constructor(
|
||||
private val compilation: KotlinCompilationImpl,
|
||||
compilation: KotlinCompilationImpl,
|
||||
val javaSourceSet: SourceSet,
|
||||
) : InternalKotlinCompilation<KotlinOptionsType> by compilation as InternalKotlinCompilation<KotlinOptionsType>,
|
||||
KotlinCompilationWithResources<KotlinOptionsType>,
|
||||
KotlinCompilationToRunnableFiles<KotlinOptionsType> {
|
||||
) : AbstractKotlinCompilationToRunnableFiles<KotlinOptionsType>(compilation),
|
||||
KotlinCompilationWithResources<KotlinOptionsType> {
|
||||
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
override val compilerOptions: HasCompilerOptions<CO> =
|
||||
compilation.compilerOptions as HasCompilerOptions<CO>
|
||||
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
override val kotlinOptions: KotlinOptionsType
|
||||
get() = compilation.kotlinOptions as KotlinOptionsType
|
||||
|
||||
val compileJavaTaskProvider: TaskProvider<out JavaCompile>
|
||||
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<String>
|
||||
get() = compilation.relatedConfigurationNames
|
||||
|
||||
fun source(javaSourceSet: SourceSet) {
|
||||
with(target.project) {
|
||||
afterEvaluate {
|
||||
|
||||
+3
-4
@@ -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<KotlinCommonOptions> by compilation.castKotlinOptionsType() {
|
||||
) : AbstractKotlinCompilation<KotlinCommonOptions>(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() }))
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user