[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>?
|
||||
|
||||
@InternalKotlinGradlePluginApi
|
||||
fun warnAboutCreationOfTargetFromPreset()
|
||||
|
||||
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.hierarchy.KotlinHierarchyDslImpl
|
||||
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
|
||||
|
||||
@Suppress("DEPRECATION")
|
||||
@@ -292,7 +294,7 @@ internal abstract class DefaultTargetsFromPresetExtension @Inject constructor(
|
||||
configureAction: T.() -> Unit,
|
||||
): T {
|
||||
warnAboutFromPresetDeprecation()
|
||||
return targetsContainer().configureOrCreate(name, preset, configureAction)
|
||||
return targetsContainer().configureOrCreate(name, preset.internal, configureAction)
|
||||
}
|
||||
|
||||
@Suppress("DEPRECATION")
|
||||
@@ -311,7 +313,7 @@ private fun KotlinTarget.isProducedFromPreset(kotlinTargetPreset: KotlinTargetPr
|
||||
|
||||
internal fun <T : KotlinTarget> KotlinTargetsContainerWithPresets.configureOrCreate(
|
||||
targetName: String,
|
||||
targetPreset: KotlinTargetPreset<T>,
|
||||
targetPreset: InternalKotlinTargetPreset<T>,
|
||||
configure: T.() -> Unit,
|
||||
): T {
|
||||
val existingTarget = targets.findByName(targetName)
|
||||
|
||||
+1
-1
@@ -109,7 +109,7 @@ private fun KotlinTargetContainerWithJsPresetFunctions.jsInternal(
|
||||
"js",
|
||||
if (compilerOrDefault == KotlinJsCompilerType.LEGACY) null else compilerOrDefault.lowerName
|
||||
)
|
||||
) as KotlinTargetPreset<KotlinJsTargetDsl>,
|
||||
) as InternalKotlinTargetPreset<KotlinJsTargetDsl>,
|
||||
configure
|
||||
).also { target ->
|
||||
warnAboutDeprecatedCompiler(target.project, compilerOrDefault)
|
||||
|
||||
-4
@@ -188,10 +188,6 @@ abstract class AbstractKotlinTarget(
|
||||
)
|
||||
override var preset: KotlinTargetPreset<out KotlinTarget>? = null
|
||||
internal set
|
||||
|
||||
override fun warnAboutCreationOfTargetFromPreset() {
|
||||
project.reportDiagnostic(KotlinToolingDiagnostics.CreateTarget())
|
||||
}
|
||||
}
|
||||
|
||||
private val publishedConfigurationNameSuffix = "-published"
|
||||
|
||||
-2
@@ -48,8 +48,6 @@ internal class ExternalKotlinTargetImpl internal constructor(
|
||||
|
||||
override val preset: Nothing? = null
|
||||
|
||||
override fun warnAboutCreationOfTargetFromPreset() {}
|
||||
|
||||
internal val logger: Logger = Logging.getLogger("${ExternalKotlinTargetImpl::class.qualifiedName}: $name")
|
||||
|
||||
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.jetbrains.kotlin.gradle.DeprecatedTargetPresetApi
|
||||
import org.jetbrains.kotlin.gradle.plugin.*
|
||||
import org.jetbrains.kotlin.gradle.targets.android.internal.InternalKotlinTargetPreset
|
||||
|
||||
@DeprecatedTargetPresetApi
|
||||
abstract class KotlinOnlyTargetPreset<R : KotlinOnlyTarget<T>, T : KotlinCompilation<*>>(
|
||||
protected val project: Project,
|
||||
) : KotlinTargetPreset<R> {
|
||||
) : InternalKotlinTargetPreset<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.jetbrains.kotlin.gradle.DeprecatedTargetPresetApi
|
||||
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.reportDiagnostic
|
||||
import org.jetbrains.kotlin.gradle.utils.findAppliedAndroidPluginIdOrNull
|
||||
@@ -21,7 +19,7 @@ import javax.inject.Inject
|
||||
@DeprecatedTargetPresetApi
|
||||
abstract class KotlinAndroidTargetPreset @Inject constructor(
|
||||
private val project: Project
|
||||
) : KotlinTargetPreset<KotlinAndroidTarget> {
|
||||
) : InternalKotlinTargetPreset<KotlinAndroidTarget> {
|
||||
|
||||
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.diagnostics.KotlinToolingDiagnostics
|
||||
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.utils.configureExperimentalTryK2
|
||||
|
||||
@DeprecatedTargetPresetApi
|
||||
class KotlinJvmWithJavaTargetPreset(
|
||||
private val project: Project
|
||||
) : KotlinTargetPreset<KotlinWithJavaTarget<KotlinJvmOptions, KotlinJvmCompilerOptions>> {
|
||||
) : InternalKotlinTargetPreset<KotlinWithJavaTarget<KotlinJvmOptions, KotlinJvmCompilerOptions>> {
|
||||
|
||||
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.gradle.DeprecatedTargetPresetApi
|
||||
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.utils.SingleActionPerProject
|
||||
import org.jetbrains.kotlin.gradle.utils.setupNativeCompiler
|
||||
@@ -23,7 +24,7 @@ abstract class AbstractKotlinNativeTargetPreset<T : KotlinNativeTarget>(
|
||||
private val name: String,
|
||||
val project: Project,
|
||||
val konanTarget: KonanTarget
|
||||
) : KotlinTargetPreset<T> {
|
||||
) : InternalKotlinTargetPreset<T> {
|
||||
|
||||
init {
|
||||
// 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