[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.KotlinJvmCompilerOptions
|
||||||
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.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
|
override val kotlinOptions: KotlinCommonOptions
|
||||||
get() = super.kotlinOptions as KotlinJvmOptions
|
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 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;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/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/DecoratedExternalKotlinCompilation;
|
||||||
}
|
}
|
||||||
|
|
||||||
public final class org/jetbrains/kotlin/gradle/plugin/mpp/external/CreateExternalKotlinTargetKt {
|
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 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 <init> (Lorg/jetbrains/kotlin/gradle/plugin/mpp/external/DecoratedExternalKotlinTarget$Delegate;)V
|
||||||
public fun attributes (Lkotlin/jvm/functions/Function1;)V
|
public fun attributes (Lkotlin/jvm/functions/Function1;)V
|
||||||
public fun attributes (Lorg/gradle/api/Action;)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.DecoratedKotlinCompilation
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationImpl
|
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
|
@ExternalKotlinTargetApi
|
||||||
abstract class ExternalDecoratedKotlinCompilation(delegate: Delegate) :
|
abstract class ExternalDecoratedKotlinCompilation(delegate: Delegate) :
|
||||||
DecoratedKotlinCompilation<KotlinCommonOptions>(delegate.compilation) {
|
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.artifacts.Configuration
|
||||||
import org.gradle.api.logging.Logger
|
import org.gradle.api.logging.Logger
|
||||||
import org.jetbrains.kotlin.gradle.ExternalKotlinTargetApi
|
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.multiplatformExtension
|
||||||
import org.jetbrains.kotlin.gradle.dsl.multiplatformExtensionOrNull
|
import org.jetbrains.kotlin.gradle.dsl.multiplatformExtensionOrNull
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.KotlinTarget
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.InternalKotlinTarget
|
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
|
@ExternalKotlinTargetApi
|
||||||
abstract class DecoratedExternalKotlinTarget internal constructor(
|
open class DecoratedExternalKotlinTarget internal constructor(
|
||||||
internal val delegate: ExternalKotlinTargetImpl
|
internal val delegate: ExternalKotlinTargetImpl
|
||||||
) : InternalKotlinTarget by delegate {
|
) : InternalKotlinTarget by delegate {
|
||||||
constructor(delegate: Delegate) : this(delegate.impl)
|
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
|
import kotlin.properties.Delegates
|
||||||
|
|
||||||
@ExternalKotlinTargetApi
|
@ExternalKotlinTargetApi
|
||||||
interface ExternalKotlinCompilationDescriptor<T : ExternalDecoratedKotlinCompilation> {
|
interface ExternalKotlinCompilationDescriptor<T : DecoratedExternalKotlinCompilation> {
|
||||||
fun interface DecoratedKotlinCompilationFactory<T : DecoratedKotlinCompilation<*>> {
|
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 resolveFriendPaths(compilation: T): FileCollection
|
||||||
}
|
}
|
||||||
|
|
||||||
fun interface CompilationAssociator<T : ExternalDecoratedKotlinCompilation> {
|
fun interface CompilationAssociator<T : DecoratedExternalKotlinCompilation> {
|
||||||
fun associate(auxiliary: T, main: ExternalDecoratedKotlinCompilation)
|
fun associate(auxiliary: T, main: DecoratedExternalKotlinCompilation)
|
||||||
}
|
}
|
||||||
|
|
||||||
val compilationName: String
|
val compilationName: String
|
||||||
@@ -37,7 +37,7 @@ interface ExternalKotlinCompilationDescriptor<T : ExternalDecoratedKotlinCompila
|
|||||||
}
|
}
|
||||||
|
|
||||||
@ExternalKotlinTargetApi
|
@ExternalKotlinTargetApi
|
||||||
fun <T : ExternalDecoratedKotlinCompilation> ExternalKotlinCompilationDescriptor(
|
fun <T : DecoratedExternalKotlinCompilation> ExternalKotlinCompilationDescriptor(
|
||||||
configure: ExternalKotlinCompilationDescriptorBuilder<T>.() -> Unit
|
configure: ExternalKotlinCompilationDescriptorBuilder<T>.() -> Unit
|
||||||
): ExternalKotlinCompilationDescriptor<T> {
|
): ExternalKotlinCompilationDescriptor<T> {
|
||||||
return ExternalKotlinCompilationDescriptorBuilderImpl<T>().also(configure).run {
|
return ExternalKotlinCompilationDescriptorBuilderImpl<T>().also(configure).run {
|
||||||
@@ -55,7 +55,7 @@ fun <T : ExternalDecoratedKotlinCompilation> ExternalKotlinCompilationDescriptor
|
|||||||
}
|
}
|
||||||
|
|
||||||
@ExternalKotlinTargetApi
|
@ExternalKotlinTargetApi
|
||||||
interface ExternalKotlinCompilationDescriptorBuilder<T : ExternalDecoratedKotlinCompilation> {
|
interface ExternalKotlinCompilationDescriptorBuilder<T : DecoratedExternalKotlinCompilation> {
|
||||||
var compilationName: String
|
var compilationName: String
|
||||||
var compileTaskName: String?
|
var compileTaskName: String?
|
||||||
var compileAllTaskName: String?
|
var compileAllTaskName: String?
|
||||||
@@ -72,7 +72,7 @@ interface ExternalKotlinCompilationDescriptorBuilder<T : ExternalDecoratedKotlin
|
|||||||
}
|
}
|
||||||
|
|
||||||
@ExternalKotlinTargetApi
|
@ExternalKotlinTargetApi
|
||||||
private class ExternalKotlinCompilationDescriptorBuilderImpl<T : ExternalDecoratedKotlinCompilation> :
|
private class ExternalKotlinCompilationDescriptorBuilderImpl<T : DecoratedExternalKotlinCompilation> :
|
||||||
ExternalKotlinCompilationDescriptorBuilder<T> {
|
ExternalKotlinCompilationDescriptorBuilder<T> {
|
||||||
override var compilationName: String by Delegates.notNull()
|
override var compilationName: String by Delegates.notNull()
|
||||||
override var compileTaskName: String? = null
|
override var compileTaskName: String? = null
|
||||||
@@ -85,7 +85,7 @@ private class ExternalKotlinCompilationDescriptorBuilderImpl<T : ExternalDecorat
|
|||||||
}
|
}
|
||||||
|
|
||||||
@ExternalKotlinTargetApi
|
@ExternalKotlinTargetApi
|
||||||
private data class ExternalKotlinCompilationDescriptorImpl<T : ExternalDecoratedKotlinCompilation>(
|
private data class ExternalKotlinCompilationDescriptorImpl<T : DecoratedExternalKotlinCompilation>(
|
||||||
override val compilationName: String,
|
override val compilationName: String,
|
||||||
override val compileTaskName: String?,
|
override val compileTaskName: String?,
|
||||||
override val compileAllTaskName: String?,
|
override val compileAllTaskName: String?,
|
||||||
|
|||||||
+2
-2
@@ -87,8 +87,8 @@ internal class ExternalKotlinTargetImpl internal constructor(
|
|||||||
setOf(ExternalKotlinTargetSoftwareComponent(this))
|
setOf(ExternalKotlinTargetSoftwareComponent(this))
|
||||||
}
|
}
|
||||||
|
|
||||||
override val compilations: NamedDomainObjectContainer<ExternalDecoratedKotlinCompilation> by lazy {
|
override val compilations: NamedDomainObjectContainer<DecoratedExternalKotlinCompilation> by lazy {
|
||||||
project.container(ExternalDecoratedKotlinCompilation::class.java)
|
project.container(DecoratedExternalKotlinCompilation::class.java)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Suppress("unchecked_cast")
|
@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.*
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.factory.KotlinCompilationImplFactory.KotlinCompilationTaskNamesContainerFactory
|
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.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
|
import org.jetbrains.kotlin.gradle.tasks.KotlinTasksProvider
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -29,7 +29,7 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinTasksProvider
|
|||||||
* container
|
* container
|
||||||
*/
|
*/
|
||||||
@ExternalKotlinTargetApi
|
@ExternalKotlinTargetApi
|
||||||
fun <T : ExternalDecoratedKotlinCompilation> DecoratedExternalKotlinTarget.createCompilation(
|
fun <T : DecoratedExternalKotlinCompilation> DecoratedExternalKotlinTarget.createCompilation(
|
||||||
descriptor: ExternalKotlinCompilationDescriptor<T>
|
descriptor: ExternalKotlinCompilationDescriptor<T>
|
||||||
): T {
|
): T {
|
||||||
val compilationImplFactory = KotlinCompilationImplFactory(
|
val compilationImplFactory = KotlinCompilationImplFactory(
|
||||||
@@ -52,7 +52,7 @@ fun <T : ExternalDecoratedKotlinCompilation> DecoratedExternalKotlinTarget.creat
|
|||||||
compilationAssociator = descriptor.compilationAssociator?.let { declaredAssociator ->
|
compilationAssociator = descriptor.compilationAssociator?.let { declaredAssociator ->
|
||||||
@Suppress("unchecked_cast")
|
@Suppress("unchecked_cast")
|
||||||
KotlinCompilationAssociator { _, first, second ->
|
KotlinCompilationAssociator { _, first, second ->
|
||||||
declaredAssociator.associate(first.decoratedInstance as T, second.decoratedInstance as ExternalDecoratedKotlinCompilation)
|
declaredAssociator.associate(first.decoratedInstance as T, second.decoratedInstance as DecoratedExternalKotlinCompilation)
|
||||||
}
|
}
|
||||||
} ?: DefaultKotlinCompilationAssociator,
|
} ?: DefaultKotlinCompilationAssociator,
|
||||||
compilationFriendPathsResolver = DefaultKotlinCompilationFriendPathsResolver(
|
compilationFriendPathsResolver = DefaultKotlinCompilationFriendPathsResolver(
|
||||||
@@ -82,14 +82,14 @@ fun <T : ExternalDecoratedKotlinCompilation> DecoratedExternalKotlinTarget.creat
|
|||||||
* @see createCompilation
|
* @see createCompilation
|
||||||
*/
|
*/
|
||||||
@ExternalKotlinTargetApi
|
@ExternalKotlinTargetApi
|
||||||
fun <T : ExternalDecoratedKotlinCompilation> DecoratedExternalKotlinTarget.createCompilation(
|
fun <T : DecoratedExternalKotlinCompilation> DecoratedExternalKotlinTarget.createCompilation(
|
||||||
descriptor: ExternalKotlinCompilationDescriptorBuilder<T>.() -> Unit
|
descriptor: ExternalKotlinCompilationDescriptorBuilder<T>.() -> Unit
|
||||||
): T {
|
): T {
|
||||||
return createCompilation(ExternalKotlinCompilationDescriptor(descriptor))
|
return createCompilation(ExternalKotlinCompilationDescriptor(descriptor))
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun DecoratedExternalKotlinTarget.setupCompileTask(
|
private fun DecoratedExternalKotlinTarget.setupCompileTask(
|
||||||
compilation: ExternalDecoratedKotlinCompilation
|
compilation: DecoratedExternalKotlinCompilation
|
||||||
) {
|
) {
|
||||||
val tasksProvider = KotlinTasksProvider()
|
val tasksProvider = KotlinTasksProvider()
|
||||||
val compilationInfo = KotlinCompilationInfo(compilation)
|
val compilationInfo = KotlinCompilationInfo(compilation)
|
||||||
|
|||||||
Reference in New Issue
Block a user