[Gradle] ExternalTargetApi: Rename 'ExternalDecoratedKotlinCompilation' to 'DecoratedExternalKotlinCompilation'
To be consistent with 'DecoratedExternalKotlinTarget' KT-55524
This commit is contained in:
committed by
Space Team
parent
bc85fe323b
commit
898e2beecb
+2
-2
@@ -11,9 +11,9 @@ import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmCompilerOptions
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions
|
||||
import org.jetbrains.kotlin.gradle.plugin.HasCompilerOptions
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.external.ExternalDecoratedKotlinCompilation
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.external.DecoratedExternalKotlinCompilation
|
||||
|
||||
class PrototypeAndroidCompilation(delegate: Delegate) : ExternalDecoratedKotlinCompilation(delegate) {
|
||||
class PrototypeAndroidCompilation(delegate: Delegate) : DecoratedExternalKotlinCompilation(delegate) {
|
||||
override val kotlinOptions: KotlinCommonOptions
|
||||
get() = super.kotlinOptions as KotlinJvmOptions
|
||||
|
||||
|
||||
@@ -176,8 +176,8 @@ public final class org/jetbrains/kotlin/gradle/plugin/ide/dependencyResolvers/Id
|
||||
}
|
||||
|
||||
public final class org/jetbrains/kotlin/gradle/plugin/mpp/external/CreateExternalKotlinCompilationKt {
|
||||
public static final fun createCompilation (Lorg/jetbrains/kotlin/gradle/plugin/mpp/external/DecoratedExternalKotlinTarget;Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/kotlin/gradle/plugin/mpp/external/ExternalDecoratedKotlinCompilation;
|
||||
public static final fun createCompilation (Lorg/jetbrains/kotlin/gradle/plugin/mpp/external/DecoratedExternalKotlinTarget;Lorg/jetbrains/kotlin/gradle/plugin/mpp/external/ExternalKotlinCompilationDescriptor;)Lorg/jetbrains/kotlin/gradle/plugin/mpp/external/ExternalDecoratedKotlinCompilation;
|
||||
public static final fun createCompilation (Lorg/jetbrains/kotlin/gradle/plugin/mpp/external/DecoratedExternalKotlinTarget;Lkotlin/jvm/functions/Function1;)Lorg/jetbrains/kotlin/gradle/plugin/mpp/external/DecoratedExternalKotlinCompilation;
|
||||
public static final fun createCompilation (Lorg/jetbrains/kotlin/gradle/plugin/mpp/external/DecoratedExternalKotlinTarget;Lorg/jetbrains/kotlin/gradle/plugin/mpp/external/ExternalKotlinCompilationDescriptor;)Lorg/jetbrains/kotlin/gradle/plugin/mpp/external/DecoratedExternalKotlinCompilation;
|
||||
}
|
||||
|
||||
public final class org/jetbrains/kotlin/gradle/plugin/mpp/external/CreateExternalKotlinTargetKt {
|
||||
@@ -185,7 +185,11 @@ public final class org/jetbrains/kotlin/gradle/plugin/mpp/external/CreateExterna
|
||||
public static final fun createExternalKotlinTarget (Lorg/jetbrains/kotlin/gradle/dsl/KotlinMultiplatformExtension;Lorg/jetbrains/kotlin/gradle/plugin/mpp/external/ExternalKotlinTargetDescriptor;)Lorg/jetbrains/kotlin/gradle/plugin/mpp/external/DecoratedExternalKotlinTarget;
|
||||
}
|
||||
|
||||
public abstract class org/jetbrains/kotlin/gradle/plugin/mpp/external/DecoratedExternalKotlinTarget : org/jetbrains/kotlin/gradle/plugin/mpp/InternalKotlinTarget {
|
||||
public abstract class org/jetbrains/kotlin/gradle/plugin/mpp/external/DecoratedExternalKotlinCompilation : org/jetbrains/kotlin/gradle/plugin/mpp/external/ExternalDecoratedKotlinCompilation {
|
||||
public fun <init> (Lorg/jetbrains/kotlin/gradle/plugin/mpp/external/DecoratedExternalKotlinCompilation$Delegate;)V
|
||||
}
|
||||
|
||||
public class org/jetbrains/kotlin/gradle/plugin/mpp/external/DecoratedExternalKotlinTarget : org/jetbrains/kotlin/gradle/plugin/mpp/InternalKotlinTarget {
|
||||
public fun <init> (Lorg/jetbrains/kotlin/gradle/plugin/mpp/external/DecoratedExternalKotlinTarget$Delegate;)V
|
||||
public fun attributes (Lkotlin/jvm/functions/Function1;)V
|
||||
public fun attributes (Lorg/gradle/api/Action;)V
|
||||
|
||||
+15
-1
@@ -12,8 +12,22 @@ import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.DecoratedKotlinCompilation
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationImpl
|
||||
|
||||
/**
|
||||
* Renamed DecoratedExternalKotlinCompilation:
|
||||
* Scheduled for removal with Kotlin 2.0
|
||||
*/
|
||||
@Deprecated(
|
||||
"Renamed to 'DecoratedExternalKotlinCompilation'", level = DeprecationLevel.ERROR,
|
||||
replaceWith = ReplaceWith("DecoratedExternalKotlinCompilation")
|
||||
)
|
||||
@ExternalKotlinTargetApi
|
||||
abstract class ExternalDecoratedKotlinCompilation(delegate: Delegate) :
|
||||
DecoratedKotlinCompilation<KotlinCommonOptions>(delegate.compilation) {
|
||||
class Delegate internal constructor(internal val compilation: KotlinCompilationImpl)
|
||||
open class Delegate internal constructor(internal open val compilation: KotlinCompilationImpl)
|
||||
}
|
||||
|
||||
@Suppress("deprecation_error")
|
||||
@ExternalKotlinTargetApi
|
||||
abstract class DecoratedExternalKotlinCompilation(delegate: Delegate) : ExternalDecoratedKotlinCompilation(delegate) {
|
||||
class Delegate internal constructor(compilation: KotlinCompilationImpl) : ExternalDecoratedKotlinCompilation.Delegate(compilation)
|
||||
}
|
||||
+27
-1
@@ -8,12 +8,38 @@ package org.jetbrains.kotlin.gradle.plugin.mpp.external
|
||||
import org.gradle.api.artifacts.Configuration
|
||||
import org.gradle.api.logging.Logger
|
||||
import org.jetbrains.kotlin.gradle.ExternalKotlinTargetApi
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
|
||||
import org.jetbrains.kotlin.gradle.dsl.multiplatformExtension
|
||||
import org.jetbrains.kotlin.gradle.dsl.multiplatformExtensionOrNull
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinTarget
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.InternalKotlinTarget
|
||||
|
||||
/**
|
||||
* Class intended to be used to implement a given adhoc/external KotlinTarget maintained outside kotlin.git.
|
||||
* The implementation will be backed by the [Delegate] holding an internal implementation of [KotlinTarget]
|
||||
* Methods of [KotlinTarget] will be handled by this backing implementation.
|
||||
* This method shall be used for decorating the class with additional, domain specific properties
|
||||
*
|
||||
* #### Sample
|
||||
*
|
||||
* ```kotlin
|
||||
* class MyCustomJvmTarget(delegate: Delegate): DecoratedExternalKotlinTarget(delegate) {
|
||||
* // Some property decorating our target
|
||||
* val myCustomProperty: String = "hello there"
|
||||
*
|
||||
* // Covariant override that allows for narrowing the type of compilations that this target contains
|
||||
* override val compilations: NamedDomainObjectContainer<MyCustomCompilationType>
|
||||
* get() = super.compilations as NamedDomainObjectContainer<MyCustomCompilationType>
|
||||
* }
|
||||
* ```
|
||||
*
|
||||
* #### Create an instance
|
||||
* Creating an instance of such classes will require an instance of [Delegate].
|
||||
* This instance can only be retrieved by calling the [KotlinMultiplatformExtension.createExternalKotlinTarget] function,
|
||||
* providing a factory function in the [ExternalKotlinTargetDescriptor]
|
||||
*/
|
||||
@ExternalKotlinTargetApi
|
||||
abstract class DecoratedExternalKotlinTarget internal constructor(
|
||||
open class DecoratedExternalKotlinTarget internal constructor(
|
||||
internal val delegate: ExternalKotlinTargetImpl
|
||||
) : InternalKotlinTarget by delegate {
|
||||
constructor(delegate: Delegate) : this(delegate.impl)
|
||||
|
||||
+9
-9
@@ -13,17 +13,17 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.external.ExternalKotlinCompilation
|
||||
import kotlin.properties.Delegates
|
||||
|
||||
@ExternalKotlinTargetApi
|
||||
interface ExternalKotlinCompilationDescriptor<T : ExternalDecoratedKotlinCompilation> {
|
||||
interface ExternalKotlinCompilationDescriptor<T : DecoratedExternalKotlinCompilation> {
|
||||
fun interface DecoratedKotlinCompilationFactory<T : DecoratedKotlinCompilation<*>> {
|
||||
fun create(delegate: ExternalDecoratedKotlinCompilation.Delegate): T
|
||||
fun create(delegate: DecoratedExternalKotlinCompilation.Delegate): T
|
||||
}
|
||||
|
||||
fun interface FriendArtifactResolver<T : ExternalDecoratedKotlinCompilation> {
|
||||
fun interface FriendArtifactResolver<T : DecoratedExternalKotlinCompilation> {
|
||||
fun resolveFriendPaths(compilation: T): FileCollection
|
||||
}
|
||||
|
||||
fun interface CompilationAssociator<T : ExternalDecoratedKotlinCompilation> {
|
||||
fun associate(auxiliary: T, main: ExternalDecoratedKotlinCompilation)
|
||||
fun interface CompilationAssociator<T : DecoratedExternalKotlinCompilation> {
|
||||
fun associate(auxiliary: T, main: DecoratedExternalKotlinCompilation)
|
||||
}
|
||||
|
||||
val compilationName: String
|
||||
@@ -37,7 +37,7 @@ interface ExternalKotlinCompilationDescriptor<T : ExternalDecoratedKotlinCompila
|
||||
}
|
||||
|
||||
@ExternalKotlinTargetApi
|
||||
fun <T : ExternalDecoratedKotlinCompilation> ExternalKotlinCompilationDescriptor(
|
||||
fun <T : DecoratedExternalKotlinCompilation> ExternalKotlinCompilationDescriptor(
|
||||
configure: ExternalKotlinCompilationDescriptorBuilder<T>.() -> Unit
|
||||
): ExternalKotlinCompilationDescriptor<T> {
|
||||
return ExternalKotlinCompilationDescriptorBuilderImpl<T>().also(configure).run {
|
||||
@@ -55,7 +55,7 @@ fun <T : ExternalDecoratedKotlinCompilation> ExternalKotlinCompilationDescriptor
|
||||
}
|
||||
|
||||
@ExternalKotlinTargetApi
|
||||
interface ExternalKotlinCompilationDescriptorBuilder<T : ExternalDecoratedKotlinCompilation> {
|
||||
interface ExternalKotlinCompilationDescriptorBuilder<T : DecoratedExternalKotlinCompilation> {
|
||||
var compilationName: String
|
||||
var compileTaskName: String?
|
||||
var compileAllTaskName: String?
|
||||
@@ -72,7 +72,7 @@ interface ExternalKotlinCompilationDescriptorBuilder<T : ExternalDecoratedKotlin
|
||||
}
|
||||
|
||||
@ExternalKotlinTargetApi
|
||||
private class ExternalKotlinCompilationDescriptorBuilderImpl<T : ExternalDecoratedKotlinCompilation> :
|
||||
private class ExternalKotlinCompilationDescriptorBuilderImpl<T : DecoratedExternalKotlinCompilation> :
|
||||
ExternalKotlinCompilationDescriptorBuilder<T> {
|
||||
override var compilationName: String by Delegates.notNull()
|
||||
override var compileTaskName: String? = null
|
||||
@@ -85,7 +85,7 @@ private class ExternalKotlinCompilationDescriptorBuilderImpl<T : ExternalDecorat
|
||||
}
|
||||
|
||||
@ExternalKotlinTargetApi
|
||||
private data class ExternalKotlinCompilationDescriptorImpl<T : ExternalDecoratedKotlinCompilation>(
|
||||
private data class ExternalKotlinCompilationDescriptorImpl<T : DecoratedExternalKotlinCompilation>(
|
||||
override val compilationName: String,
|
||||
override val compileTaskName: String?,
|
||||
override val compileAllTaskName: String?,
|
||||
|
||||
+2
-2
@@ -87,8 +87,8 @@ internal class ExternalKotlinTargetImpl internal constructor(
|
||||
setOf(ExternalKotlinTargetSoftwareComponent(this))
|
||||
}
|
||||
|
||||
override val compilations: NamedDomainObjectContainer<ExternalDecoratedKotlinCompilation> by lazy {
|
||||
project.container(ExternalDecoratedKotlinCompilation::class.java)
|
||||
override val compilations: NamedDomainObjectContainer<DecoratedExternalKotlinCompilation> by lazy {
|
||||
project.container(DecoratedExternalKotlinCompilation::class.java)
|
||||
}
|
||||
|
||||
@Suppress("unchecked_cast")
|
||||
|
||||
+5
-5
@@ -14,7 +14,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationS
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.factory.*
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.factory.KotlinCompilationImplFactory.KotlinCompilationTaskNamesContainerFactory
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.decoratedInstance
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.external.ExternalDecoratedKotlinCompilation.Delegate
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.external.DecoratedExternalKotlinCompilation.Delegate
|
||||
import org.jetbrains.kotlin.gradle.tasks.KotlinTasksProvider
|
||||
|
||||
/**
|
||||
@@ -29,7 +29,7 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinTasksProvider
|
||||
* container
|
||||
*/
|
||||
@ExternalKotlinTargetApi
|
||||
fun <T : ExternalDecoratedKotlinCompilation> DecoratedExternalKotlinTarget.createCompilation(
|
||||
fun <T : DecoratedExternalKotlinCompilation> DecoratedExternalKotlinTarget.createCompilation(
|
||||
descriptor: ExternalKotlinCompilationDescriptor<T>
|
||||
): T {
|
||||
val compilationImplFactory = KotlinCompilationImplFactory(
|
||||
@@ -52,7 +52,7 @@ fun <T : ExternalDecoratedKotlinCompilation> DecoratedExternalKotlinTarget.creat
|
||||
compilationAssociator = descriptor.compilationAssociator?.let { declaredAssociator ->
|
||||
@Suppress("unchecked_cast")
|
||||
KotlinCompilationAssociator { _, first, second ->
|
||||
declaredAssociator.associate(first.decoratedInstance as T, second.decoratedInstance as ExternalDecoratedKotlinCompilation)
|
||||
declaredAssociator.associate(first.decoratedInstance as T, second.decoratedInstance as DecoratedExternalKotlinCompilation)
|
||||
}
|
||||
} ?: DefaultKotlinCompilationAssociator,
|
||||
compilationFriendPathsResolver = DefaultKotlinCompilationFriendPathsResolver(
|
||||
@@ -82,14 +82,14 @@ fun <T : ExternalDecoratedKotlinCompilation> DecoratedExternalKotlinTarget.creat
|
||||
* @see createCompilation
|
||||
*/
|
||||
@ExternalKotlinTargetApi
|
||||
fun <T : ExternalDecoratedKotlinCompilation> DecoratedExternalKotlinTarget.createCompilation(
|
||||
fun <T : DecoratedExternalKotlinCompilation> DecoratedExternalKotlinTarget.createCompilation(
|
||||
descriptor: ExternalKotlinCompilationDescriptorBuilder<T>.() -> Unit
|
||||
): T {
|
||||
return createCompilation(ExternalKotlinCompilationDescriptor(descriptor))
|
||||
}
|
||||
|
||||
private fun DecoratedExternalKotlinTarget.setupCompileTask(
|
||||
compilation: ExternalDecoratedKotlinCompilation
|
||||
compilation: DecoratedExternalKotlinCompilation
|
||||
) {
|
||||
val tasksProvider = KotlinTasksProvider()
|
||||
val compilationInfo = KotlinCompilationInfo(compilation)
|
||||
|
||||
Reference in New Issue
Block a user