[Gradle] Implement InternalKotlinTargetPreset
^KT-59321 In Progress
This commit is contained in:
committed by
Space Team
parent
969deb639c
commit
db5655d6ce
-3
@@ -61,9 +61,6 @@ interface KotlinTarget : Named, HasAttributes, HasProject, HasMutableExtras {
|
|||||||
)
|
)
|
||||||
val preset: KotlinTargetPreset<out KotlinTarget>?
|
val preset: KotlinTargetPreset<out KotlinTarget>?
|
||||||
|
|
||||||
@InternalKotlinGradlePluginApi
|
|
||||||
fun warnAboutCreationOfTargetFromPreset()
|
|
||||||
|
|
||||||
override fun getName(): String = targetName
|
override fun getName(): String = targetName
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+4
-2
@@ -20,6 +20,8 @@ import org.jetbrains.kotlin.gradle.plugin.diagnostics.reportDiagnostic
|
|||||||
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.Companion.kotlinPropertiesProvider
|
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.Companion.kotlinPropertiesProvider
|
||||||
import org.jetbrains.kotlin.gradle.plugin.hierarchy.KotlinHierarchyDslImpl
|
import org.jetbrains.kotlin.gradle.plugin.hierarchy.KotlinHierarchyDslImpl
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.*
|
import org.jetbrains.kotlin.gradle.plugin.mpp.*
|
||||||
|
import org.jetbrains.kotlin.gradle.targets.android.internal.InternalKotlinTargetPreset
|
||||||
|
import org.jetbrains.kotlin.gradle.targets.android.internal.internal
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
@Suppress("DEPRECATION")
|
@Suppress("DEPRECATION")
|
||||||
@@ -292,7 +294,7 @@ internal abstract class DefaultTargetsFromPresetExtension @Inject constructor(
|
|||||||
configureAction: T.() -> Unit,
|
configureAction: T.() -> Unit,
|
||||||
): T {
|
): T {
|
||||||
warnAboutFromPresetDeprecation()
|
warnAboutFromPresetDeprecation()
|
||||||
return targetsContainer().configureOrCreate(name, preset, configureAction)
|
return targetsContainer().configureOrCreate(name, preset.internal, configureAction)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Suppress("DEPRECATION")
|
@Suppress("DEPRECATION")
|
||||||
@@ -311,7 +313,7 @@ private fun KotlinTarget.isProducedFromPreset(kotlinTargetPreset: KotlinTargetPr
|
|||||||
|
|
||||||
internal fun <T : KotlinTarget> KotlinTargetsContainerWithPresets.configureOrCreate(
|
internal fun <T : KotlinTarget> KotlinTargetsContainerWithPresets.configureOrCreate(
|
||||||
targetName: String,
|
targetName: String,
|
||||||
targetPreset: KotlinTargetPreset<T>,
|
targetPreset: InternalKotlinTargetPreset<T>,
|
||||||
configure: T.() -> Unit,
|
configure: T.() -> Unit,
|
||||||
): T {
|
): T {
|
||||||
val existingTarget = targets.findByName(targetName)
|
val existingTarget = targets.findByName(targetName)
|
||||||
|
|||||||
+1
-1
@@ -109,7 +109,7 @@ private fun KotlinTargetContainerWithJsPresetFunctions.jsInternal(
|
|||||||
"js",
|
"js",
|
||||||
if (compilerOrDefault == KotlinJsCompilerType.LEGACY) null else compilerOrDefault.lowerName
|
if (compilerOrDefault == KotlinJsCompilerType.LEGACY) null else compilerOrDefault.lowerName
|
||||||
)
|
)
|
||||||
) as KotlinTargetPreset<KotlinJsTargetDsl>,
|
) as InternalKotlinTargetPreset<KotlinJsTargetDsl>,
|
||||||
configure
|
configure
|
||||||
).also { target ->
|
).also { target ->
|
||||||
warnAboutDeprecatedCompiler(target.project, compilerOrDefault)
|
warnAboutDeprecatedCompiler(target.project, compilerOrDefault)
|
||||||
|
|||||||
-4
@@ -188,10 +188,6 @@ abstract class AbstractKotlinTarget(
|
|||||||
)
|
)
|
||||||
override var preset: KotlinTargetPreset<out KotlinTarget>? = null
|
override var preset: KotlinTargetPreset<out KotlinTarget>? = null
|
||||||
internal set
|
internal set
|
||||||
|
|
||||||
override fun warnAboutCreationOfTargetFromPreset() {
|
|
||||||
project.reportDiagnostic(KotlinToolingDiagnostics.CreateTarget())
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private val publishedConfigurationNameSuffix = "-published"
|
private val publishedConfigurationNameSuffix = "-published"
|
||||||
|
|||||||
-2
@@ -48,8 +48,6 @@ internal class ExternalKotlinTargetImpl internal constructor(
|
|||||||
|
|
||||||
override val preset: Nothing? = null
|
override val preset: Nothing? = null
|
||||||
|
|
||||||
override fun warnAboutCreationOfTargetFromPreset() {}
|
|
||||||
|
|
||||||
internal val logger: Logger = Logging.getLogger("${ExternalKotlinTargetImpl::class.qualifiedName}: $name")
|
internal val logger: Logger = Logging.getLogger("${ExternalKotlinTargetImpl::class.qualifiedName}: $name")
|
||||||
|
|
||||||
override val useDisambiguationClassifierAsSourceSetNamePrefix: Boolean = true
|
override val useDisambiguationClassifierAsSourceSetNamePrefix: Boolean = true
|
||||||
|
|||||||
+2
-1
@@ -8,11 +8,12 @@ package org.jetbrains.kotlin.gradle.plugin.mpp
|
|||||||
import org.gradle.api.Project
|
import org.gradle.api.Project
|
||||||
import org.jetbrains.kotlin.gradle.DeprecatedTargetPresetApi
|
import org.jetbrains.kotlin.gradle.DeprecatedTargetPresetApi
|
||||||
import org.jetbrains.kotlin.gradle.plugin.*
|
import org.jetbrains.kotlin.gradle.plugin.*
|
||||||
|
import org.jetbrains.kotlin.gradle.targets.android.internal.InternalKotlinTargetPreset
|
||||||
|
|
||||||
@DeprecatedTargetPresetApi
|
@DeprecatedTargetPresetApi
|
||||||
abstract class KotlinOnlyTargetPreset<R : KotlinOnlyTarget<T>, T : KotlinCompilation<*>>(
|
abstract class KotlinOnlyTargetPreset<R : KotlinOnlyTarget<T>, T : KotlinCompilation<*>>(
|
||||||
protected val project: Project,
|
protected val project: Project,
|
||||||
) : KotlinTargetPreset<R> {
|
) : InternalKotlinTargetPreset<R> {
|
||||||
|
|
||||||
protected abstract fun createKotlinTargetConfigurator(): AbstractKotlinTargetConfigurator<R>
|
protected abstract fun createKotlinTargetConfigurator(): AbstractKotlinTargetConfigurator<R>
|
||||||
|
|
||||||
|
|||||||
+1
-3
@@ -9,8 +9,6 @@ package org.jetbrains.kotlin.gradle.plugin.mpp
|
|||||||
import org.gradle.api.Project
|
import org.gradle.api.Project
|
||||||
import org.jetbrains.kotlin.gradle.DeprecatedTargetPresetApi
|
import org.jetbrains.kotlin.gradle.DeprecatedTargetPresetApi
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinAndroidPlugin.Companion.dynamicallyApplyWhenAndroidPluginIsApplied
|
import org.jetbrains.kotlin.gradle.plugin.KotlinAndroidPlugin.Companion.dynamicallyApplyWhenAndroidPluginIsApplied
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinTargetPreset
|
|
||||||
import org.jetbrains.kotlin.gradle.plugin.diagnostics.KotlinToolingDiagnostics
|
|
||||||
import org.jetbrains.kotlin.gradle.plugin.diagnostics.KotlinToolingDiagnostics.AndroidGradlePluginIsMissing
|
import org.jetbrains.kotlin.gradle.plugin.diagnostics.KotlinToolingDiagnostics.AndroidGradlePluginIsMissing
|
||||||
import org.jetbrains.kotlin.gradle.plugin.diagnostics.reportDiagnostic
|
import org.jetbrains.kotlin.gradle.plugin.diagnostics.reportDiagnostic
|
||||||
import org.jetbrains.kotlin.gradle.utils.findAppliedAndroidPluginIdOrNull
|
import org.jetbrains.kotlin.gradle.utils.findAppliedAndroidPluginIdOrNull
|
||||||
@@ -21,7 +19,7 @@ import javax.inject.Inject
|
|||||||
@DeprecatedTargetPresetApi
|
@DeprecatedTargetPresetApi
|
||||||
abstract class KotlinAndroidTargetPreset @Inject constructor(
|
abstract class KotlinAndroidTargetPreset @Inject constructor(
|
||||||
private val project: Project
|
private val project: Project
|
||||||
) : KotlinTargetPreset<KotlinAndroidTarget> {
|
) : InternalKotlinTargetPreset<KotlinAndroidTarget> {
|
||||||
|
|
||||||
override fun getName(): String = PRESET_NAME
|
override fun getName(): String = PRESET_NAME
|
||||||
|
|
||||||
|
|||||||
+2
-1
@@ -15,13 +15,14 @@ import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions
|
|||||||
import org.jetbrains.kotlin.gradle.plugin.*
|
import org.jetbrains.kotlin.gradle.plugin.*
|
||||||
import org.jetbrains.kotlin.gradle.plugin.diagnostics.KotlinToolingDiagnostics
|
import org.jetbrains.kotlin.gradle.plugin.diagnostics.KotlinToolingDiagnostics
|
||||||
import org.jetbrains.kotlin.gradle.plugin.diagnostics.reportDiagnostic
|
import org.jetbrains.kotlin.gradle.plugin.diagnostics.reportDiagnostic
|
||||||
|
import org.jetbrains.kotlin.gradle.targets.android.internal.InternalKotlinTargetPreset
|
||||||
import org.jetbrains.kotlin.gradle.tasks.KotlinTasksProvider
|
import org.jetbrains.kotlin.gradle.tasks.KotlinTasksProvider
|
||||||
import org.jetbrains.kotlin.gradle.utils.configureExperimentalTryK2
|
import org.jetbrains.kotlin.gradle.utils.configureExperimentalTryK2
|
||||||
|
|
||||||
@DeprecatedTargetPresetApi
|
@DeprecatedTargetPresetApi
|
||||||
class KotlinJvmWithJavaTargetPreset(
|
class KotlinJvmWithJavaTargetPreset(
|
||||||
private val project: Project
|
private val project: Project
|
||||||
) : KotlinTargetPreset<KotlinWithJavaTarget<KotlinJvmOptions, KotlinJvmCompilerOptions>> {
|
) : InternalKotlinTargetPreset<KotlinWithJavaTarget<KotlinJvmOptions, KotlinJvmCompilerOptions>> {
|
||||||
|
|
||||||
override fun getName(): String = PRESET_NAME
|
override fun getName(): String = PRESET_NAME
|
||||||
|
|
||||||
|
|||||||
+2
-1
@@ -12,6 +12,7 @@ import org.gradle.api.Project
|
|||||||
import org.jetbrains.kotlin.compilerRunner.konanHome
|
import org.jetbrains.kotlin.compilerRunner.konanHome
|
||||||
import org.jetbrains.kotlin.gradle.DeprecatedTargetPresetApi
|
import org.jetbrains.kotlin.gradle.DeprecatedTargetPresetApi
|
||||||
import org.jetbrains.kotlin.gradle.plugin.*
|
import org.jetbrains.kotlin.gradle.plugin.*
|
||||||
|
import org.jetbrains.kotlin.gradle.targets.android.internal.InternalKotlinTargetPreset
|
||||||
import org.jetbrains.kotlin.gradle.targets.native.internal.*
|
import org.jetbrains.kotlin.gradle.targets.native.internal.*
|
||||||
import org.jetbrains.kotlin.gradle.utils.SingleActionPerProject
|
import org.jetbrains.kotlin.gradle.utils.SingleActionPerProject
|
||||||
import org.jetbrains.kotlin.gradle.utils.setupNativeCompiler
|
import org.jetbrains.kotlin.gradle.utils.setupNativeCompiler
|
||||||
@@ -23,7 +24,7 @@ abstract class AbstractKotlinNativeTargetPreset<T : KotlinNativeTarget>(
|
|||||||
private val name: String,
|
private val name: String,
|
||||||
val project: Project,
|
val project: Project,
|
||||||
val konanTarget: KonanTarget
|
val konanTarget: KonanTarget
|
||||||
) : KotlinTargetPreset<T> {
|
) : InternalKotlinTargetPreset<T> {
|
||||||
|
|
||||||
init {
|
init {
|
||||||
// This is required to obtain Kotlin/Native home in IDE plugin:
|
// This is required to obtain Kotlin/Native home in IDE plugin:
|
||||||
|
|||||||
+19
@@ -0,0 +1,19 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2023 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.gradle.unitTests
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.KotlinTargetPreset
|
||||||
|
import org.jetbrains.kotlin.gradle.targets.android.internal.InternalKotlinTargetPreset
|
||||||
|
import org.jetbrains.kotlin.gradle.util.assertAllImplementationsAlsoImplement
|
||||||
|
import org.junit.Test
|
||||||
|
|
||||||
|
@Suppress("FunctionName")
|
||||||
|
class InternalKotlinTargetPresetTest {
|
||||||
|
@Test
|
||||||
|
fun `test - all implementations of KotlinTargetPreset - implement InternalKotlinTargetPreset`() {
|
||||||
|
assertAllImplementationsAlsoImplement(KotlinTargetPreset::class, InternalKotlinTargetPreset::class)
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user