[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
|
get() = target.disambiguationClassifier + name
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO NOW: Revisit/Remove?
|
@Deprecated("Scheduled for removal with Kotlin 1.9")
|
||||||
interface KotlinCompilationToRunnableFiles<T : KotlinCommonOptionsDeprecated> : KotlinCompilation<T> {
|
interface KotlinCompilationToRunnableFiles<T : KotlinCommonOptionsDeprecated> : KotlinCompilation<T> {
|
||||||
override val runtimeDependencyConfigurationName: String
|
override val runtimeDependencyConfigurationName: String
|
||||||
|
|
||||||
@@ -132,7 +132,7 @@ interface KotlinCompilationToRunnableFiles<T : KotlinCommonOptionsDeprecated> :
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Deprecated("Scheduled for removal with Kotlin 1.9")
|
@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?
|
val <T : KotlinCommonOptionsDeprecated> KotlinCompilation<T>.runtimeDependencyConfigurationName: String?
|
||||||
get() = (this as? KotlinCompilationToRunnableFiles<T>)?.runtimeDependencyConfigurationName
|
get() = (this as? KotlinCompilationToRunnableFiles<T>)?.runtimeDependencyConfigurationName
|
||||||
|
|
||||||
|
|||||||
+1
@@ -39,6 +39,7 @@ interface CompilationExecutionSource<CompilationType : KotlinCompilation<*>> : E
|
|||||||
val compilation: CompilationType
|
val compilation: CompilationType
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Suppress("deprecation")
|
||||||
interface CompilationExecutionSourceSupport<in T : KotlinCompilationToRunnableFiles<*>> {
|
interface CompilationExecutionSourceSupport<in T : KotlinCompilationToRunnableFiles<*>> {
|
||||||
/**
|
/**
|
||||||
* Select a compilation to run the execution from.
|
* 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.
|
* 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
|
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.KotlinCommonOptions
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinCompile
|
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationImpl
|
||||||
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.*
|
|
||||||
|
|
||||||
abstract class AbstractKotlinCompilation<T : KotlinCommonOptions>(
|
@Deprecated("Use KotlinCompilation<T> instead")
|
||||||
internal open val compilationDetails: CompilationDetails<T>,
|
abstract class AbstractKotlinCompilation<T : KotlinCommonOptions> internal constructor(compilation: KotlinCompilationImpl) :
|
||||||
) : InternalKotlinCompilation<T>,
|
DecoratedKotlinCompilation<T>(compilation)
|
||||||
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
|
|
||||||
}
|
|
||||||
+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.
|
* 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
|
package org.jetbrains.kotlin.gradle.plugin.mpp
|
||||||
|
|
||||||
import org.gradle.api.file.FileCollection
|
import org.gradle.api.file.FileCollection
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions
|
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilationToRunnableFiles
|
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilationToRunnableFiles
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationImpl
|
||||||
|
|
||||||
abstract class AbstractKotlinCompilationToRunnableFiles<T : KotlinCommonOptions>(
|
@Deprecated("Use KotlinCompilation<T> instead")
|
||||||
override val compilationDetails: CompilationDetailsWithRuntime<T>,
|
abstract class AbstractKotlinCompilationToRunnableFiles<T : KotlinCommonOptions>
|
||||||
) : AbstractKotlinCompilation<T>(compilationDetails),
|
internal constructor(compilation: KotlinCompilationImpl) : AbstractKotlinCompilation<T>(compilation), KotlinCompilationToRunnableFiles<T> {
|
||||||
KotlinCompilationToRunnableFiles<T> {
|
|
||||||
|
|
||||||
final override val runtimeDependencyConfigurationName: String get() = compilationDetails.runtimeDependencyFilesHolder.dependencyConfigurationName
|
final override val runtimeDependencyConfigurationName: String
|
||||||
final override var runtimeDependencyFiles: FileCollection
|
get() = compilation.runtimeDependencyConfigurationName ?: error("$compilation: Missing 'runtimeDependencyConfigurationName'")
|
||||||
get() = compilationDetails.runtimeDependencyFilesHolder.dependencyFiles
|
|
||||||
set(value) {
|
final override var runtimeDependencyFiles: FileCollection =
|
||||||
compilationDetails.runtimeDependencyFilesHolder.dependencyFiles = value
|
compilation.runtimeDependencyFiles ?: error("$compilation: Missing 'runtimeDependencyFiles'")
|
||||||
}
|
|
||||||
|
|
||||||
override val relatedConfigurationNames: List<String>
|
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.KotlinCompilation
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
|
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
|
||||||
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.gradle.utils.ObservableSet
|
||||||
import org.jetbrains.kotlin.tooling.core.MutableExtras
|
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 kotlinSourceSets: ObservableSet<KotlinSourceSet>
|
||||||
override val allKotlinSourceSets: ObservableSet<KotlinSourceSet>
|
override val allKotlinSourceSets: ObservableSet<KotlinSourceSet>
|
||||||
|
|
||||||
val friendPaths: Iterable<FileCollection>
|
val friendPaths: Iterable<FileCollection>
|
||||||
|
|
||||||
// TODO NOW: Remove default impl
|
|
||||||
val compilationModule: KotlinCompilationModuleManager.CompilationModule
|
val compilationModule: KotlinCompilationModuleManager.CompilationModule
|
||||||
get() = KotlinCompilationModuleManager.CompilationModule(
|
val processResourcesTaskName: String?
|
||||||
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
|
|
||||||
}
|
}
|
||||||
|
|
||||||
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>
|
internal val <T : KotlinCommonOptions> KotlinCompilation<T>.internal: InternalKotlinCompilation<T>
|
||||||
get() = (this as? InternalKotlinCompilation<T>) ?: throw IllegalArgumentException(
|
get() = (this as? InternalKotlinCompilation<T>) ?: throw IllegalArgumentException(
|
||||||
"KotlinCompilation($name) ${this::class} does not implement ${InternalKotlinCompilation::class}"
|
"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>
|
interface KotlinMetadataCompilation<T : KotlinCommonOptions> : KotlinCompilation<T>
|
||||||
|
|
||||||
open class KotlinCommonCompilation @Inject internal constructor(
|
open class KotlinCommonCompilation @Inject internal constructor(compilation: KotlinCompilationImpl) :
|
||||||
private val compilation: KotlinCompilationImpl
|
AbstractKotlinCompilation<KotlinCommonOptions>(compilation),
|
||||||
) : InternalKotlinCompilation<KotlinCommonOptions> by compilation,
|
|
||||||
KotlinMetadataCompilation<KotlinCommonOptions> {
|
KotlinMetadataCompilation<KotlinCommonOptions> {
|
||||||
@Suppress("DEPRECATION")
|
@Suppress("DEPRECATION")
|
||||||
@Deprecated("Accessing task instance directly is deprecated", replaceWith = ReplaceWith("compileTaskProvider"))
|
@Deprecated("Accessing task instance directly is deprecated", replaceWith = ReplaceWith("compileTaskProvider"))
|
||||||
|
|||||||
+1
-1
@@ -90,7 +90,7 @@ internal class DefaultKotlinCompilationFriendPathsResolver(
|
|||||||
|
|
||||||
object AdditionalAndroidFriendArtifactResolver : FriendArtifactResolver {
|
object AdditionalAndroidFriendArtifactResolver : FriendArtifactResolver {
|
||||||
override fun resolveFriendArtifacts(compilation: InternalKotlinCompilation<*>): FileCollection {
|
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
|
//endregion
|
||||||
|
|
||||||
|
override fun toString(): String {
|
||||||
|
return "compilation '$name' ($target)"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-12
@@ -9,7 +9,6 @@
|
|||||||
package org.jetbrains.kotlin.gradle.plugin.mpp
|
package org.jetbrains.kotlin.gradle.plugin.mpp
|
||||||
|
|
||||||
import groovy.lang.Closure
|
import groovy.lang.Closure
|
||||||
import org.gradle.api.file.FileCollection
|
|
||||||
import org.gradle.api.tasks.TaskProvider
|
import org.gradle.api.tasks.TaskProvider
|
||||||
import org.jetbrains.kotlin.gradle.dsl.*
|
import org.jetbrains.kotlin.gradle.dsl.*
|
||||||
import org.jetbrains.kotlin.gradle.plugin.*
|
import org.jetbrains.kotlin.gradle.plugin.*
|
||||||
@@ -22,9 +21,8 @@ import org.jetbrains.kotlin.gradle.tasks.Kotlin2JsCompile
|
|||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
open class KotlinJsCompilation @Inject internal constructor(
|
open class KotlinJsCompilation @Inject internal constructor(
|
||||||
private val compilation: KotlinCompilationImpl
|
compilation: KotlinCompilationImpl
|
||||||
) : InternalKotlinCompilation<KotlinJsOptions> by compilation.castKotlinOptionsType(),
|
) : AbstractKotlinCompilationToRunnableFiles<KotlinJsOptions>(compilation) {
|
||||||
KotlinCompilationToRunnableFiles<KotlinJsOptions> {
|
|
||||||
|
|
||||||
@Suppress("UNCHECKED_CAST")
|
@Suppress("UNCHECKED_CAST")
|
||||||
final override val compilerOptions: HasCompilerOptions<CompilerJsOptions>
|
final override val compilerOptions: HasCompilerOptions<CompilerJsOptions>
|
||||||
@@ -68,14 +66,6 @@ open class KotlinJsCompilation @Inject internal constructor(
|
|||||||
override val compileTaskProvider: TaskProvider<Kotlin2JsCompile>
|
override val compileTaskProvider: TaskProvider<Kotlin2JsCompile>
|
||||||
get() = compilation.compileTaskProvider as 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>()
|
internal val packageJsonHandlers = mutableListOf<PackageJson.() -> Unit>()
|
||||||
|
|
||||||
fun packageJson(handler: 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 org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationImpl
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
open class KotlinJsIrCompilation @Inject internal constructor(
|
open class KotlinJsIrCompilation @Inject internal constructor(compilation: KotlinCompilationImpl) : KotlinJsCompilation(compilation)
|
||||||
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.CompilerJvmOptions
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions
|
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions
|
||||||
import org.jetbrains.kotlin.gradle.plugin.HasCompilerOptions
|
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.getJavaTaskProvider
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationImpl
|
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationImpl
|
||||||
import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask
|
import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
open class KotlinJvmAndroidCompilation @Inject internal constructor(
|
open class KotlinJvmAndroidCompilation @Inject internal constructor(
|
||||||
private val compilation: KotlinCompilationImpl,
|
compilation: KotlinCompilationImpl,
|
||||||
val androidVariant: BaseVariant
|
val androidVariant: BaseVariant
|
||||||
) : InternalKotlinCompilation<KotlinJvmOptions> by compilation.castKotlinOptionsType(),
|
) : AbstractKotlinCompilationToRunnableFiles<KotlinJvmOptions>(compilation) {
|
||||||
KotlinCompilationToRunnableFiles<KotlinJvmOptions> {
|
|
||||||
|
|
||||||
override val target: KotlinAndroidTarget = compilation.target as KotlinAndroidTarget
|
override val target: KotlinAndroidTarget = compilation.target as KotlinAndroidTarget
|
||||||
|
|
||||||
@@ -51,11 +49,6 @@ open class KotlinJvmAndroidCompilation @Inject internal constructor(
|
|||||||
val compileJavaTaskProvider: TaskProvider<out JavaCompile>
|
val compileJavaTaskProvider: TaskProvider<out JavaCompile>
|
||||||
get() = androidVariant.getJavaTaskProvider()
|
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>
|
override val relatedConfigurationNames: List<String>
|
||||||
get() = compilation.relatedConfigurationNames + listOf(
|
get() = compilation.relatedConfigurationNames + listOf(
|
||||||
"${androidVariant.name}ApiElements",
|
"${androidVariant.name}ApiElements",
|
||||||
|
|||||||
+3
-14
@@ -6,7 +6,6 @@
|
|||||||
@file:Suppress("PackageDirectoryMismatch") // Old package for compatibility
|
@file:Suppress("PackageDirectoryMismatch") // Old package for compatibility
|
||||||
package org.jetbrains.kotlin.gradle.plugin.mpp
|
package org.jetbrains.kotlin.gradle.plugin.mpp
|
||||||
|
|
||||||
import org.gradle.api.file.FileCollection
|
|
||||||
import org.gradle.api.tasks.TaskProvider
|
import org.gradle.api.tasks.TaskProvider
|
||||||
import org.gradle.api.tasks.compile.JavaCompile
|
import org.gradle.api.tasks.compile.JavaCompile
|
||||||
import org.jetbrains.kotlin.gradle.dsl.CompilerCommonOptions
|
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.KotlinCommonOptions
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions
|
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions
|
||||||
import org.jetbrains.kotlin.gradle.plugin.HasCompilerOptions
|
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.KotlinCompilationWithResources
|
||||||
import org.jetbrains.kotlin.gradle.plugin.internal.JavaSourceSetsAccessor
|
import org.jetbrains.kotlin.gradle.plugin.internal.JavaSourceSetsAccessor
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationImpl
|
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationImpl
|
||||||
@@ -24,10 +22,9 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask
|
|||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
open class KotlinJvmCompilation @Inject internal constructor(
|
open class KotlinJvmCompilation @Inject internal constructor(
|
||||||
private val compilation: KotlinCompilationImpl
|
compilation: KotlinCompilationImpl
|
||||||
) : InternalKotlinCompilation<KotlinJvmOptions> by compilation.castKotlinOptionsType(),
|
) : AbstractKotlinCompilationToRunnableFiles<KotlinJvmOptions>(compilation),
|
||||||
KotlinCompilationWithResources<KotlinJvmOptions>,
|
KotlinCompilationWithResources<KotlinJvmOptions> {
|
||||||
KotlinCompilationToRunnableFiles<KotlinJvmOptions> {
|
|
||||||
|
|
||||||
override val target: KotlinJvmTarget = compilation.target as KotlinJvmTarget
|
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)
|
project.tasks.withType(JavaCompile::class.java).named(javaSourceSet.compileJavaTaskName)
|
||||||
} else null
|
} 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
|
override val processResourcesTaskName: String
|
||||||
get() = compilation.processResourcesTaskName ?: error("Missing 'processResourcesTaskName'")
|
get() = compilation.processResourcesTaskName ?: error("Missing 'processResourcesTaskName'")
|
||||||
|
|
||||||
override val relatedConfigurationNames: List<String>
|
|
||||||
get() = compilation.relatedConfigurationNames
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO SEB: Find a good spot for this function
|
//TODO SEB: Find a good spot for this function
|
||||||
|
|||||||
+3
-18
@@ -6,14 +6,12 @@
|
|||||||
@file:Suppress("PackageDirectoryMismatch", "UNCHECKED_CAST") // Old package for compatibility
|
@file:Suppress("PackageDirectoryMismatch", "UNCHECKED_CAST") // Old package for compatibility
|
||||||
package org.jetbrains.kotlin.gradle.plugin.mpp
|
package org.jetbrains.kotlin.gradle.plugin.mpp
|
||||||
|
|
||||||
import org.gradle.api.file.FileCollection
|
|
||||||
import org.gradle.api.tasks.SourceSet
|
import org.gradle.api.tasks.SourceSet
|
||||||
import org.gradle.api.tasks.TaskProvider
|
import org.gradle.api.tasks.TaskProvider
|
||||||
import org.gradle.api.tasks.compile.JavaCompile
|
import org.gradle.api.tasks.compile.JavaCompile
|
||||||
import org.jetbrains.kotlin.gradle.dsl.CompilerCommonOptions
|
import org.jetbrains.kotlin.gradle.dsl.CompilerCommonOptions
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions
|
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions
|
||||||
import org.jetbrains.kotlin.gradle.plugin.HasCompilerOptions
|
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.KotlinCompilationWithResources
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationImpl
|
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationImpl
|
||||||
import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile
|
import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile
|
||||||
@@ -21,34 +19,21 @@ import org.jetbrains.kotlin.gradle.utils.named
|
|||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
open class KotlinWithJavaCompilation<KotlinOptionsType : KotlinCommonOptions, CO : CompilerCommonOptions> @Inject internal constructor(
|
open class KotlinWithJavaCompilation<KotlinOptionsType : KotlinCommonOptions, CO : CompilerCommonOptions> @Inject internal constructor(
|
||||||
private val compilation: KotlinCompilationImpl,
|
compilation: KotlinCompilationImpl,
|
||||||
val javaSourceSet: SourceSet,
|
val javaSourceSet: SourceSet,
|
||||||
) : InternalKotlinCompilation<KotlinOptionsType> by compilation as InternalKotlinCompilation<KotlinOptionsType>,
|
) : AbstractKotlinCompilationToRunnableFiles<KotlinOptionsType>(compilation),
|
||||||
KotlinCompilationWithResources<KotlinOptionsType>,
|
KotlinCompilationWithResources<KotlinOptionsType> {
|
||||||
KotlinCompilationToRunnableFiles<KotlinOptionsType> {
|
|
||||||
|
|
||||||
@Suppress("UNCHECKED_CAST")
|
@Suppress("UNCHECKED_CAST")
|
||||||
override val compilerOptions: HasCompilerOptions<CO> =
|
override val compilerOptions: HasCompilerOptions<CO> =
|
||||||
compilation.compilerOptions as HasCompilerOptions<CO>
|
compilation.compilerOptions as HasCompilerOptions<CO>
|
||||||
|
|
||||||
@Suppress("UNCHECKED_CAST")
|
|
||||||
override val kotlinOptions: KotlinOptionsType
|
|
||||||
get() = compilation.kotlinOptions as KotlinOptionsType
|
|
||||||
|
|
||||||
val compileJavaTaskProvider: TaskProvider<out JavaCompile>
|
val compileJavaTaskProvider: TaskProvider<out JavaCompile>
|
||||||
get() = target.project.tasks.withType(JavaCompile::class.java).named(javaSourceSet.compileJavaTaskName)
|
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
|
override val processResourcesTaskName: String
|
||||||
get() = compilation.processResourcesTaskName ?: error("Missing 'processResourcesTaskName'")
|
get() = compilation.processResourcesTaskName ?: error("Missing 'processResourcesTaskName'")
|
||||||
|
|
||||||
override val relatedConfigurationNames: List<String>
|
|
||||||
get() = compilation.relatedConfigurationNames
|
|
||||||
|
|
||||||
fun source(javaSourceSet: SourceSet) {
|
fun source(javaSourceSet: SourceSet) {
|
||||||
with(target.project) {
|
with(target.project) {
|
||||||
afterEvaluate {
|
afterEvaluate {
|
||||||
|
|||||||
+3
-4
@@ -22,9 +22,9 @@ import java.util.concurrent.Callable
|
|||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
abstract class AbstractKotlinNativeCompilation internal constructor(
|
abstract class AbstractKotlinNativeCompilation internal constructor(
|
||||||
private val compilation: KotlinCompilationImpl,
|
compilation: KotlinCompilationImpl,
|
||||||
val konanTarget: KonanTarget
|
val konanTarget: KonanTarget
|
||||||
) : InternalKotlinCompilation<KotlinCommonOptions> by compilation.castKotlinOptionsType() {
|
) : AbstractKotlinCompilation<KotlinCommonOptions>(compilation) {
|
||||||
|
|
||||||
@Suppress("DEPRECATION")
|
@Suppress("DEPRECATION")
|
||||||
@Deprecated("Accessing task instance directly is deprecated", replaceWith = ReplaceWith("compileTaskProvider"))
|
@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(
|
open class KotlinNativeCompilation @Inject internal constructor(
|
||||||
konanTarget: KonanTarget, private val compilation: KotlinCompilationImpl,
|
konanTarget: KonanTarget, compilation: KotlinCompilationImpl,
|
||||||
) : AbstractKotlinNativeCompilation(compilation, konanTarget) {
|
) : AbstractKotlinNativeCompilation(compilation, konanTarget) {
|
||||||
|
|
||||||
final override val target: KotlinNativeTarget
|
final override val target: KotlinNativeTarget
|
||||||
@@ -94,5 +94,4 @@ internal fun addSourcesToKotlinNativeCompileTask(
|
|||||||
task.setSource(sourceFiles)
|
task.setSource(sourceFiles)
|
||||||
task.commonSources.from(project.files(Callable { if (addAsCommonSources.value) sourceFiles() else emptyList() }))
|
task.commonSources.from(project.files(Callable { if (addAsCommonSources.value) sourceFiles() else emptyList() }))
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user