Revert "[Gradle/MPP] Refactored KotlinTargetContainerWithPresetFunctions"

This reverts commit becf50ee

These changes are binary incompatible due to move of methods with
default arguments.

^KT-59049 In Progress
^KT-57903 In Progress
This commit is contained in:
Anton Lakotka
2023-06-02 16:58:23 +02:00
committed by Space Team
parent 0cfe2b04f5
commit 5a8b6e9603
8 changed files with 59 additions and 99 deletions
@@ -19,7 +19,7 @@ private val presetsProperty = KotlinTargetsContainerWithPresets::presets.name
private fun generateKotlinTargetContainerWithPresetFunctionsInterface() {
// Generate KotlinMultiplatformExtension subclass with member functions for the presets:
val functions = nativePresetEntries.map { kotlinPreset ->
val functions = allPresetEntries.map { kotlinPreset ->
// magic indent is needed to make the result look pretty
val funPrefix = kotlinPreset.deprecation?.let { "\n $it\n @Suppress(\"DEPRECATION_ERROR\")\n " } ?: ""
generatePresetFunctions(kotlinPreset, presetsProperty, "configureOrCreate", funPrefix)
@@ -29,11 +29,11 @@ private fun generateKotlinTargetContainerWithPresetFunctionsInterface() {
typeName(parentInterface.java.canonicalName)
val className =
typeName("org.jetbrains.kotlin.gradle.dsl.KotlinTargetContainerWithNativePresetFunctions")
typeName("org.jetbrains.kotlin.gradle.dsl.KotlinTargetContainerWithPresetFunctions")
val deprecatedMessageVal = typeName("org.jetbrains.kotlin.konan.target.DEPRECATED_TARGET_MESSAGE")
val imports = nativePresetEntries
val imports = allPresetEntries
.flatMap { it.typeNames() }
.plus(parentInterfaceName)
.plus(deprecatedMessageVal)
@@ -36,6 +36,18 @@ internal object NativeFQNames {
}
}
internal val jvmPresetEntry = KotlinPresetEntry(
"jvm",
typeName("$MPP_PACKAGE.KotlinJvmTargetPreset"),
typeName("org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmTarget")
)
internal val androidPresetEntry = KotlinPresetEntry(
"android",
typeName("$MPP_PACKAGE.KotlinAndroidTargetPreset"),
typeName("$MPP_PACKAGE.KotlinAndroidTarget")
)
// Note: modifying these sets should also be reflected in the MPP plugin code, see 'setupDefaultPresets'
private val nativeTargetsWithHostTests =
setOf(KonanTarget.LINUX_X64, KonanTarget.MACOS_X64, KonanTarget.MACOS_ARM64, KonanTarget.MINGW_X64)
@@ -67,3 +79,8 @@ internal val nativePresetEntries = HostManager().targets
KotlinPresetEntry(target.presetName, typeName(presetType), typeName(targetType), deprecation)
}
internal val allPresetEntries = listOf(
jvmPresetEntry,
androidPresetEntry
) + nativePresetEntries
@@ -16,16 +16,11 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.*
import org.jetbrains.kotlin.gradle.plugin.mpp.targetHierarchy.KotlinTargetHierarchyDslImpl
import javax.inject.Inject
interface KotlinTargetContainerWithPresetFunctions :
KotlinTargetContainerWithJvmPresetFunctions,
KotlinTargetContainerWithAndroidPresetFunctions,
KotlinTargetContainerWithNativePresetFunctions,
KotlinTargetContainerWithJsPresetFunctions,
KotlinTargetContainerWithWasmPresetFunctions
abstract class KotlinMultiplatformExtension(project: Project) :
KotlinProjectExtension(project),
KotlinTargetContainerWithPresetFunctions,
KotlinTargetContainerWithJsPresetFunctions,
KotlinTargetContainerWithWasmPresetFunctions,
KotlinTargetContainerWithNativeShortcuts {
override val presets: NamedDomainObjectCollection<KotlinTargetPreset<*>> = project.container(KotlinTargetPreset::class.java)
@@ -1,55 +0,0 @@
/*
* 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.dsl
import org.gradle.api.Action
import org.jetbrains.kotlin.gradle.plugin.KotlinTargetsContainerWithPresets
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTarget
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTargetPreset
private const val ANDROID_TARGET_MIGRATION_MESSAGE = "Please use androidTarget() instead. Learn more here: https://kotl.in/android-target-dsl"
interface KotlinTargetContainerWithAndroidPresetFunctions : KotlinTargetsContainerWithPresets {
fun androidTarget(
name: String = "android",
configure: KotlinAndroidTarget.() -> Unit = { }
): KotlinAndroidTarget =
configureOrCreate(
name,
presets.getByName("android") as KotlinAndroidTargetPreset,
configure
)
fun androidTarget() = androidTarget("android") { }
fun androidTarget(name: String) = androidTarget(name) { }
fun androidTarget(name: String, configure: Action<KotlinAndroidTarget>) = androidTarget(name) { configure.execute(this) }
fun androidTarget(configure: Action<KotlinAndroidTarget>) = androidTarget { configure.execute(this) }
@Deprecated(ANDROID_TARGET_MIGRATION_MESSAGE)
fun android(
name: String = "android",
configure: KotlinAndroidTarget.() -> Unit = { }
): KotlinAndroidTarget =
configureOrCreateAndroidTargetAndReportDeprecation(name, configure)
@Suppress("DEPRECATION")
@Deprecated(ANDROID_TARGET_MIGRATION_MESSAGE, replaceWith = ReplaceWith("androidTarget()"))
fun android() = android("android") { }
@Suppress("DEPRECATION")
@Deprecated(ANDROID_TARGET_MIGRATION_MESSAGE, replaceWith = ReplaceWith("androidTarget(name)"))
fun android(name: String) = android(name) { }
@Suppress("DEPRECATION")
@Deprecated(ANDROID_TARGET_MIGRATION_MESSAGE)
fun android(name: String, configure: Action<KotlinAndroidTarget>) = android(name) { configure.execute(this) }
@Suppress("DEPRECATION")
@Deprecated(ANDROID_TARGET_MIGRATION_MESSAGE)
fun android(configure: Action<KotlinAndroidTarget>) = android { configure.execute(this) }
}
@@ -14,7 +14,7 @@ import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsTargetDsl
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
interface KotlinTargetContainerWithJsPresetFunctions :
KotlinTargetsContainerWithPresets,
KotlinTargetContainerWithPresetFunctions,
KotlinJsCompilerTypeHolder {
fun js(
name: String = "js",
@@ -1,30 +0,0 @@
/*
* 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.dsl
import org.gradle.api.Action
import org.jetbrains.kotlin.gradle.plugin.KotlinTargetsContainerWithPresets
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJvmTargetPreset
import org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmTarget
interface KotlinTargetContainerWithJvmPresetFunctions : KotlinTargetsContainerWithPresets {
fun jvm(
name: String = "jvm",
configure: KotlinJvmTarget.() -> Unit = { }
): KotlinJvmTarget =
configureOrCreate(
name,
presets.getByName("jvm") as KotlinJvmTargetPreset,
configure
)
fun jvm() = jvm("jvm") { }
fun jvm(name: String) = jvm(name) { }
fun jvm(name: String, configure: Action<KotlinJvmTarget>) = jvm(name) { configure.execute(this) }
fun jvm(configure: Action<KotlinJvmTarget>) = jvm { configure.execute(this) }
}
@@ -2,17 +2,51 @@ package org.jetbrains.kotlin.gradle.dsl
import org.gradle.api.Action
import org.jetbrains.kotlin.gradle.plugin.KotlinTargetsContainerWithPresets
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTarget
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTargetPreset
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJvmTargetPreset
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTargetPreset
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTargetWithHostTests
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTargetWithHostTestsPreset
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTargetWithSimulatorTests
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTargetWithSimulatorTestsPreset
import org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmTarget
import org.jetbrains.kotlin.konan.target.DEPRECATED_TARGET_MESSAGE
// DO NOT EDIT MANUALLY! Generated by org.jetbrains.kotlin.generators.gradle.dsl.MppPresetFunctionsCodegenKt
interface KotlinTargetContainerWithNativePresetFunctions : KotlinTargetsContainerWithPresets {
interface KotlinTargetContainerWithPresetFunctions : KotlinTargetsContainerWithPresets {
fun jvm(
name: String = "jvm",
configure: KotlinJvmTarget.() -> Unit = { }
): KotlinJvmTarget =
configureOrCreate(
name,
presets.getByName("jvm") as KotlinJvmTargetPreset,
configure
)
fun jvm() = jvm("jvm") { }
fun jvm(name: String) = jvm(name) { }
fun jvm(name: String, configure: Action<KotlinJvmTarget>) = jvm(name) { configure.execute(this) }
fun jvm(configure: Action<KotlinJvmTarget>) = jvm { configure.execute(this) }
fun android(
name: String = "android",
configure: KotlinAndroidTarget.() -> Unit = { }
): KotlinAndroidTarget =
configureOrCreate(
name,
presets.getByName("android") as KotlinAndroidTargetPreset,
configure
)
fun android() = android("android") { }
fun android(name: String) = android(name) { }
fun android(name: String, configure: Action<KotlinAndroidTarget>) = android(name) { configure.execute(this) }
fun android(configure: Action<KotlinAndroidTarget>) = android { configure.execute(this) }
fun androidNativeX64(
name: String = "androidNativeX64",
@@ -6,13 +6,12 @@
package org.jetbrains.kotlin.gradle.dsl
import org.gradle.api.Action
import org.jetbrains.kotlin.gradle.plugin.KotlinTargetsContainerWithPresets
import org.jetbrains.kotlin.gradle.targets.js.dsl.ExperimentalWasmDsl
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsTargetDsl
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinWasmTargetDsl
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinWasmTargetPreset
interface KotlinTargetContainerWithWasmPresetFunctions : KotlinTargetsContainerWithPresets {
interface KotlinTargetContainerWithWasmPresetFunctions : KotlinTargetContainerWithPresetFunctions {
@ExperimentalWasmDsl
fun wasm(
name: String = "wasm",