diff --git a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinTargetHierarchyBuilder.kt b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinTargetHierarchyBuilder.kt index 82319620841..68f01d1a20a 100644 --- a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinTargetHierarchyBuilder.kt +++ b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinTargetHierarchyBuilder.kt @@ -3,6 +3,7 @@ package org.jetbrains.kotlin.gradle.plugin import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi +import org.jetbrains.kotlin.konan.target.DEPRECATED_TARGET_MESSAGE @KotlinTargetsDsl @ExperimentalKotlinGradlePluginApi @@ -42,7 +43,6 @@ interface KotlinTargetHierarchyBuilder { fun anyIosSimulatorArm64() fun anyWatchosArm32() fun anyWatchosArm64() - fun anyWatchosX86() fun anyWatchosX64() fun anyWatchosSimulatorArm64() fun anyWatchosDeviceArm64() @@ -50,13 +50,26 @@ interface KotlinTargetHierarchyBuilder { fun anyTvosX64() fun anyTvosSimulatorArm64() fun anyLinuxX64() - fun anyMingwX86() fun anyMingwX64() fun anyMacosX64() fun anyMacosArm64() fun anyLinuxArm64() + + @Deprecated(DEPRECATED_TARGET_MESSAGE) + fun anyWatchosX86() + + @Deprecated(DEPRECATED_TARGET_MESSAGE) + fun anyMingwX86() + + @Deprecated(DEPRECATED_TARGET_MESSAGE) fun anyLinuxArm32Hfp() + + @Deprecated(DEPRECATED_TARGET_MESSAGE) fun anyLinuxMips32() + + @Deprecated(DEPRECATED_TARGET_MESSAGE) fun anyLinuxMipsel32() + + @Deprecated(DEPRECATED_TARGET_MESSAGE) fun anyWasm32() } diff --git a/libraries/tools/kotlin-gradle-plugin-dsl-codegen/src/main/kotlin/org/jetbrains/kotlin/generators/gradle/dsl/KotlinArtifactsDSLCodegen.kt b/libraries/tools/kotlin-gradle-plugin-dsl-codegen/src/main/kotlin/org/jetbrains/kotlin/generators/gradle/dsl/KotlinArtifactsDSLCodegen.kt index 9ab82e3790c..63fd74c823c 100644 --- a/libraries/tools/kotlin-gradle-plugin-dsl-codegen/src/main/kotlin/org/jetbrains/kotlin/generators/gradle/dsl/KotlinArtifactsDSLCodegen.kt +++ b/libraries/tools/kotlin-gradle-plugin-dsl-codegen/src/main/kotlin/org/jetbrains/kotlin/generators/gradle/dsl/KotlinArtifactsDSLCodegen.kt @@ -25,6 +25,7 @@ private fun generateAbstractKotlinArtifactsExtensionImplementation() { import org.jetbrains.kotlin.gradle.dsl.KotlinArtifactsExtension import org.jetbrains.kotlin.gradle.plugin.mpp.BitcodeEmbeddingMode import org.jetbrains.kotlin.gradle.plugin.mpp.NativeBuildType + import org.jetbrains.kotlin.konan.target.DEPRECATED_TARGET_MESSAGE import org.jetbrains.kotlin.konan.target.KonanTarget import javax.inject.Inject """.trimIndent() @@ -54,15 +55,15 @@ private fun generateAbstractKotlinArtifactsExtensionImplementation() { "val EmbedBitcodeMode = BitcodeEmbeddingModeDsl()" ).joinToString("\n").indented(4) - val konanTargetConstants = KonanTarget.predefinedTargets.values.joinToString("\n") { - val nameParts = it.name.split("_") - val name = nameParts.drop(1).joinToString( - separator = "", - prefix = nameParts.first(), - transform = String::capitalizeUS - ) - "val $name = KonanTarget.${it.name.uppercase(Locale.US)}" - }.indented(4) + val konanTargetConstants = KonanTarget.predefinedTargets.values.filter { !KonanTarget.deprecatedTargets.contains(it) } + .joinToString("\n") { + it.generateKonanTargetVal() + }.indented(4) + + val deprecatedKonanTargetConstants = KonanTarget.predefinedTargets.values.filter { KonanTarget.deprecatedTargets.contains(it) } + .joinToString("\n") { + "\n@Deprecated(DEPRECATED_TARGET_MESSAGE)\n" + it.generateKonanTargetVal() + }.indented(4) val code = listOf( "package ${className.packageName()}", @@ -74,9 +75,20 @@ private fun generateAbstractKotlinArtifactsExtensionImplementation() { bitcodeModeConstants, bitcodeMode, konanTargetConstants, + deprecatedKonanTargetConstants, "}" ).joinToString(separator = "\n\n") val targetFile = File("$outputSourceRoot/${className.fqName.replace(".", "/")}.kt") targetFile.writeText(code) +} + +private fun KonanTarget.generateKonanTargetVal(): String { + val nameParts = this.name.split("_") + val name = nameParts.drop(1).joinToString( + separator = "", + prefix = nameParts.first(), + transform = String::capitalizeUS + ) + return "val $name = KonanTarget.${this.name.uppercase(Locale.US)}" } \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-dsl-codegen/src/main/kotlin/org/jetbrains/kotlin/generators/gradle/dsl/mppPresetFunctionsCodegen.kt b/libraries/tools/kotlin-gradle-plugin-dsl-codegen/src/main/kotlin/org/jetbrains/kotlin/generators/gradle/dsl/mppPresetFunctionsCodegen.kt index c1ac6a5c228..0cbceac4153 100644 --- a/libraries/tools/kotlin-gradle-plugin-dsl-codegen/src/main/kotlin/org/jetbrains/kotlin/generators/gradle/dsl/mppPresetFunctionsCodegen.kt +++ b/libraries/tools/kotlin-gradle-plugin-dsl-codegen/src/main/kotlin/org/jetbrains/kotlin/generators/gradle/dsl/mppPresetFunctionsCodegen.kt @@ -19,8 +19,10 @@ private val presetsProperty = KotlinTargetsContainerWithPresets::presets.name private fun generateKotlinTargetContainerWithPresetFunctionsInterface() { // Generate KotlinMultiplatformExtension subclass with member functions for the presets: - val functions = allPresetEntries.map { - generatePresetFunctions(it, presetsProperty, "configureOrCreate") + 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\")\n " } ?: "" + generatePresetFunctions(kotlinPreset, presetsProperty, "configureOrCreate", funPrefix) } val parentInterfaceName = @@ -29,9 +31,12 @@ private fun generateKotlinTargetContainerWithPresetFunctionsInterface() { val className = typeName("org.jetbrains.kotlin.gradle.dsl.KotlinTargetContainerWithPresetFunctions") + val deprecatedMessageVal = typeName("org.jetbrains.kotlin.konan.target.DEPRECATED_TARGET_MESSAGE") + val imports = allPresetEntries .flatMap { it.typeNames() } .plus(parentInterfaceName) + .plus(deprecatedMessageVal) .plus(typeName(Action::class.java.canonicalName)) .filter { it.packageName() != className.packageName() } .flatMap { it.collectFqNames() } @@ -56,11 +61,12 @@ private fun generateKotlinTargetContainerWithPresetFunctionsInterface() { private fun generatePresetFunctions( presetEntry: KotlinPresetEntry, getPresetsExpression: String, - configureOrCreateFunctionName: String + configureOrCreateFunctionName: String, + funPrefix: String = "" ): String { val presetName = presetEntry.presetName return """ - fun $presetName( + ${funPrefix}fun $presetName( name: String = "$presetName", configure: ${presetEntry.targetType.renderShort()}.() -> Unit = { } ): ${presetEntry.targetType.renderShort()} = @@ -70,9 +76,9 @@ private fun generatePresetFunctions( configure ) - fun $presetName() = $presetName("$presetName") { } - fun $presetName(name: String) = $presetName(name) { } - fun $presetName(name: String, configure: Action<${presetEntry.targetType.renderShort()}>) = $presetName(name) { configure.execute(this) } - fun $presetName(configure: Action<${presetEntry.targetType.renderShort()}>) = $presetName { configure.execute(this) } + ${funPrefix}fun $presetName() = $presetName("$presetName") { } + ${funPrefix}fun $presetName(name: String) = $presetName(name) { } + ${funPrefix}fun $presetName(name: String, configure: Action<${presetEntry.targetType.renderShort()}>) = $presetName(name) { configure.execute(this) } + ${funPrefix}fun $presetName(configure: Action<${presetEntry.targetType.renderShort()}>) = $presetName { configure.execute(this) } """.trimIndent() } diff --git a/libraries/tools/kotlin-gradle-plugin-dsl-codegen/src/main/kotlin/org/jetbrains/kotlin/generators/gradle/dsl/presetEntries.kt b/libraries/tools/kotlin-gradle-plugin-dsl-codegen/src/main/kotlin/org/jetbrains/kotlin/generators/gradle/dsl/presetEntries.kt index 7e71ff65f19..d7b2d7b7f03 100644 --- a/libraries/tools/kotlin-gradle-plugin-dsl-codegen/src/main/kotlin/org/jetbrains/kotlin/generators/gradle/dsl/presetEntries.kt +++ b/libraries/tools/kotlin-gradle-plugin-dsl-codegen/src/main/kotlin/org/jetbrains/kotlin/generators/gradle/dsl/presetEntries.kt @@ -14,7 +14,8 @@ import org.jetbrains.kotlin.konan.target.presetName internal class KotlinPresetEntry( val presetName: String, val presetType: TypeName, - val targetType: TypeName + val targetType: TypeName, + val deprecation: String? = null ) internal fun KotlinPresetEntry.typeNames(): Set = setOf(presetType, targetType) @@ -74,8 +75,9 @@ internal val nativePresetEntries = HostManager().targets else -> Presets.simple to Targets.base } + val deprecation = "@Deprecated(DEPRECATED_TARGET_MESSAGE)".takeIf { target in KonanTarget.deprecatedTargets } - KotlinPresetEntry(target.presetName, typeName(presetType), typeName(targetType)) + KotlinPresetEntry(target.presetName, typeName(presetType), typeName(targetType), deprecation) } internal val allPresetEntries = listOf( diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinTargetContainerWithPresetFunctions.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinTargetContainerWithPresetFunctions.kt index f28030adcf8..869f21e5ea2 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinTargetContainerWithPresetFunctions.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinTargetContainerWithPresetFunctions.kt @@ -12,6 +12,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTargetWithHostTestsPre 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 @@ -107,6 +108,9 @@ interface KotlinTargetContainerWithPresetFunctions : KotlinTargetsContainerWithP fun androidNativeArm64(name: String, configure: Action) = androidNativeArm64(name) { configure.execute(this) } fun androidNativeArm64(configure: Action) = androidNativeArm64 { configure.execute(this) } + + @Deprecated(DEPRECATED_TARGET_MESSAGE) + @Suppress("DEPRECATION") fun iosArm32( name: String = "iosArm32", configure: KotlinNativeTarget.() -> Unit = { } @@ -117,9 +121,21 @@ interface KotlinTargetContainerWithPresetFunctions : KotlinTargetsContainerWithP configure ) + + @Deprecated(DEPRECATED_TARGET_MESSAGE) + @Suppress("DEPRECATION") fun iosArm32() = iosArm32("iosArm32") { } + + @Deprecated(DEPRECATED_TARGET_MESSAGE) + @Suppress("DEPRECATION") fun iosArm32(name: String) = iosArm32(name) { } + + @Deprecated(DEPRECATED_TARGET_MESSAGE) + @Suppress("DEPRECATION") fun iosArm32(name: String, configure: Action) = iosArm32(name) { configure.execute(this) } + + @Deprecated(DEPRECATED_TARGET_MESSAGE) + @Suppress("DEPRECATION") fun iosArm32(configure: Action) = iosArm32 { configure.execute(this) } fun iosArm64( @@ -197,6 +213,9 @@ interface KotlinTargetContainerWithPresetFunctions : KotlinTargetsContainerWithP fun watchosArm64(name: String, configure: Action) = watchosArm64(name) { configure.execute(this) } fun watchosArm64(configure: Action) = watchosArm64 { configure.execute(this) } + + @Deprecated(DEPRECATED_TARGET_MESSAGE) + @Suppress("DEPRECATION") fun watchosX86( name: String = "watchosX86", configure: KotlinNativeTargetWithSimulatorTests.() -> Unit = { } @@ -207,9 +226,21 @@ interface KotlinTargetContainerWithPresetFunctions : KotlinTargetsContainerWithP configure ) + + @Deprecated(DEPRECATED_TARGET_MESSAGE) + @Suppress("DEPRECATION") fun watchosX86() = watchosX86("watchosX86") { } + + @Deprecated(DEPRECATED_TARGET_MESSAGE) + @Suppress("DEPRECATION") fun watchosX86(name: String) = watchosX86(name) { } + + @Deprecated(DEPRECATED_TARGET_MESSAGE) + @Suppress("DEPRECATION") fun watchosX86(name: String, configure: Action) = watchosX86(name) { configure.execute(this) } + + @Deprecated(DEPRECATED_TARGET_MESSAGE) + @Suppress("DEPRECATION") fun watchosX86(configure: Action) = watchosX86 { configure.execute(this) } fun watchosX64( @@ -317,6 +348,9 @@ interface KotlinTargetContainerWithPresetFunctions : KotlinTargetsContainerWithP fun linuxX64(name: String, configure: Action) = linuxX64(name) { configure.execute(this) } fun linuxX64(configure: Action) = linuxX64 { configure.execute(this) } + + @Deprecated(DEPRECATED_TARGET_MESSAGE) + @Suppress("DEPRECATION") fun mingwX86( name: String = "mingwX86", configure: KotlinNativeTarget.() -> Unit = { } @@ -327,9 +361,21 @@ interface KotlinTargetContainerWithPresetFunctions : KotlinTargetsContainerWithP configure ) + + @Deprecated(DEPRECATED_TARGET_MESSAGE) + @Suppress("DEPRECATION") fun mingwX86() = mingwX86("mingwX86") { } + + @Deprecated(DEPRECATED_TARGET_MESSAGE) + @Suppress("DEPRECATION") fun mingwX86(name: String) = mingwX86(name) { } + + @Deprecated(DEPRECATED_TARGET_MESSAGE) + @Suppress("DEPRECATION") fun mingwX86(name: String, configure: Action) = mingwX86(name) { configure.execute(this) } + + @Deprecated(DEPRECATED_TARGET_MESSAGE) + @Suppress("DEPRECATION") fun mingwX86(configure: Action) = mingwX86 { configure.execute(this) } fun mingwX64( @@ -392,6 +438,9 @@ interface KotlinTargetContainerWithPresetFunctions : KotlinTargetsContainerWithP fun linuxArm64(name: String, configure: Action) = linuxArm64(name) { configure.execute(this) } fun linuxArm64(configure: Action) = linuxArm64 { configure.execute(this) } + + @Deprecated(DEPRECATED_TARGET_MESSAGE) + @Suppress("DEPRECATION") fun linuxArm32Hfp( name: String = "linuxArm32Hfp", configure: KotlinNativeTarget.() -> Unit = { } @@ -402,11 +451,26 @@ interface KotlinTargetContainerWithPresetFunctions : KotlinTargetsContainerWithP configure ) + + @Deprecated(DEPRECATED_TARGET_MESSAGE) + @Suppress("DEPRECATION") fun linuxArm32Hfp() = linuxArm32Hfp("linuxArm32Hfp") { } + + @Deprecated(DEPRECATED_TARGET_MESSAGE) + @Suppress("DEPRECATION") fun linuxArm32Hfp(name: String) = linuxArm32Hfp(name) { } + + @Deprecated(DEPRECATED_TARGET_MESSAGE) + @Suppress("DEPRECATION") fun linuxArm32Hfp(name: String, configure: Action) = linuxArm32Hfp(name) { configure.execute(this) } + + @Deprecated(DEPRECATED_TARGET_MESSAGE) + @Suppress("DEPRECATION") fun linuxArm32Hfp(configure: Action) = linuxArm32Hfp { configure.execute(this) } + + @Deprecated(DEPRECATED_TARGET_MESSAGE) + @Suppress("DEPRECATION") fun linuxMips32( name: String = "linuxMips32", configure: KotlinNativeTarget.() -> Unit = { } @@ -417,11 +481,26 @@ interface KotlinTargetContainerWithPresetFunctions : KotlinTargetsContainerWithP configure ) + + @Deprecated(DEPRECATED_TARGET_MESSAGE) + @Suppress("DEPRECATION") fun linuxMips32() = linuxMips32("linuxMips32") { } + + @Deprecated(DEPRECATED_TARGET_MESSAGE) + @Suppress("DEPRECATION") fun linuxMips32(name: String) = linuxMips32(name) { } + + @Deprecated(DEPRECATED_TARGET_MESSAGE) + @Suppress("DEPRECATION") fun linuxMips32(name: String, configure: Action) = linuxMips32(name) { configure.execute(this) } + + @Deprecated(DEPRECATED_TARGET_MESSAGE) + @Suppress("DEPRECATION") fun linuxMips32(configure: Action) = linuxMips32 { configure.execute(this) } + + @Deprecated(DEPRECATED_TARGET_MESSAGE) + @Suppress("DEPRECATION") fun linuxMipsel32( name: String = "linuxMipsel32", configure: KotlinNativeTarget.() -> Unit = { } @@ -432,11 +511,26 @@ interface KotlinTargetContainerWithPresetFunctions : KotlinTargetsContainerWithP configure ) + + @Deprecated(DEPRECATED_TARGET_MESSAGE) + @Suppress("DEPRECATION") fun linuxMipsel32() = linuxMipsel32("linuxMipsel32") { } + + @Deprecated(DEPRECATED_TARGET_MESSAGE) + @Suppress("DEPRECATION") fun linuxMipsel32(name: String) = linuxMipsel32(name) { } + + @Deprecated(DEPRECATED_TARGET_MESSAGE) + @Suppress("DEPRECATION") fun linuxMipsel32(name: String, configure: Action) = linuxMipsel32(name) { configure.execute(this) } + + @Deprecated(DEPRECATED_TARGET_MESSAGE) + @Suppress("DEPRECATION") fun linuxMipsel32(configure: Action) = linuxMipsel32 { configure.execute(this) } + + @Deprecated(DEPRECATED_TARGET_MESSAGE) + @Suppress("DEPRECATION") fun wasm32( name: String = "wasm32", configure: KotlinNativeTarget.() -> Unit = { } @@ -447,9 +541,21 @@ interface KotlinTargetContainerWithPresetFunctions : KotlinTargetsContainerWithP configure ) + + @Deprecated(DEPRECATED_TARGET_MESSAGE) + @Suppress("DEPRECATION") fun wasm32() = wasm32("wasm32") { } + + @Deprecated(DEPRECATED_TARGET_MESSAGE) + @Suppress("DEPRECATION") fun wasm32(name: String) = wasm32(name) { } + + @Deprecated(DEPRECATED_TARGET_MESSAGE) + @Suppress("DEPRECATION") fun wasm32(name: String, configure: Action) = wasm32(name) { configure.execute(this) } + + @Deprecated(DEPRECATED_TARGET_MESSAGE) + @Suppress("DEPRECATION") fun wasm32(configure: Action) = wasm32 { configure.execute(this) } } \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/targetHierarchy/buildKotlinTargetHierarchy.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/targetHierarchy/buildKotlinTargetHierarchy.kt index 1960ebf373d..f079fb975b3 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/targetHierarchy/buildKotlinTargetHierarchy.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/targetHierarchy/buildKotlinTargetHierarchy.kt @@ -12,6 +12,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinWithJavaTarget import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsTargetDsl import org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmTarget +import org.jetbrains.kotlin.konan.target.DEPRECATED_TARGET_MESSAGE import org.jetbrains.kotlin.konan.target.Family import org.jetbrains.kotlin.konan.target.KonanTarget import org.jetbrains.kotlin.tooling.core.closure @@ -170,10 +171,6 @@ private class KotlinTargetHierarchyBuilderImpl( it is KotlinNativeTarget && it.konanTarget == KonanTarget.WATCHOS_ARM64 } - override fun anyWatchosX86() = addTargets { - it is KotlinNativeTarget && it.konanTarget == KonanTarget.WATCHOS_X86 - } - override fun anyWatchosX64() = addTargets { it is KotlinNativeTarget && it.konanTarget == KonanTarget.WATCHOS_X64 } @@ -202,10 +199,6 @@ private class KotlinTargetHierarchyBuilderImpl( it is KotlinNativeTarget && it.konanTarget == KonanTarget.LINUX_X64 } - override fun anyMingwX86() = addTargets { - it is KotlinNativeTarget && it.konanTarget == KonanTarget.MINGW_X86 - } - override fun anyMingwX64() = addTargets { it is KotlinNativeTarget && it.konanTarget == KonanTarget.MINGW_X64 } @@ -222,18 +215,32 @@ private class KotlinTargetHierarchyBuilderImpl( it is KotlinNativeTarget && it.konanTarget == KonanTarget.LINUX_ARM64 } + @Deprecated(DEPRECATED_TARGET_MESSAGE) + override fun anyWatchosX86() = addTargets { + it is KotlinNativeTarget && it.konanTarget == KonanTarget.WATCHOS_X86 + } + + @Deprecated(DEPRECATED_TARGET_MESSAGE) + override fun anyMingwX86() = addTargets { + it is KotlinNativeTarget && it.konanTarget == KonanTarget.MINGW_X86 + } + + @Deprecated(DEPRECATED_TARGET_MESSAGE) override fun anyLinuxArm32Hfp() = addTargets { it is KotlinNativeTarget && it.konanTarget == KonanTarget.LINUX_ARM32_HFP } + @Deprecated(DEPRECATED_TARGET_MESSAGE) override fun anyLinuxMips32() = addTargets { it is KotlinNativeTarget && it.konanTarget == KonanTarget.LINUX_MIPS32 } + @Deprecated(DEPRECATED_TARGET_MESSAGE) override fun anyLinuxMipsel32() = addTargets { it is KotlinNativeTarget && it.konanTarget == KonanTarget.LINUX_MIPSEL32 } + @Deprecated(DEPRECATED_TARGET_MESSAGE) override fun anyWasm32() = addTargets { it is KotlinNativeTarget && it.konanTarget == KonanTarget.WASM32 } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/artifact/KotlinArtifactsExtensionImpl.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/artifact/KotlinArtifactsExtensionImpl.kt index c2fb85fa6cc..9fee793a8dd 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/artifact/KotlinArtifactsExtensionImpl.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/artifact/KotlinArtifactsExtensionImpl.kt @@ -6,6 +6,7 @@ import org.jetbrains.kotlin.gradle.dsl.KotlinArtifactConfig import org.jetbrains.kotlin.gradle.dsl.KotlinArtifactsExtension import org.jetbrains.kotlin.gradle.plugin.mpp.BitcodeEmbeddingMode import org.jetbrains.kotlin.gradle.plugin.mpp.NativeBuildType +import org.jetbrains.kotlin.konan.target.DEPRECATED_TARGET_MESSAGE import org.jetbrains.kotlin.konan.target.KonanTarget import javax.inject.Inject @@ -33,13 +34,11 @@ abstract class KotlinArtifactsExtensionImpl @Inject constructor(project: Project val androidX86 = KonanTarget.ANDROID_X86 val androidArm32 = KonanTarget.ANDROID_ARM32 val androidArm64 = KonanTarget.ANDROID_ARM64 - val iosArm32 = KonanTarget.IOS_ARM32 val iosArm64 = KonanTarget.IOS_ARM64 val iosX64 = KonanTarget.IOS_X64 val iosSimulatorArm64 = KonanTarget.IOS_SIMULATOR_ARM64 val watchosArm32 = KonanTarget.WATCHOS_ARM32 val watchosArm64 = KonanTarget.WATCHOS_ARM64 - val watchosX86 = KonanTarget.WATCHOS_X86 val watchosX64 = KonanTarget.WATCHOS_X64 val watchosSimulatorArm64 = KonanTarget.WATCHOS_SIMULATOR_ARM64 val watchosDeviceArm64 = KonanTarget.WATCHOS_DEVICE_ARM64 @@ -47,14 +46,31 @@ abstract class KotlinArtifactsExtensionImpl @Inject constructor(project: Project val tvosX64 = KonanTarget.TVOS_X64 val tvosSimulatorArm64 = KonanTarget.TVOS_SIMULATOR_ARM64 val linuxX64 = KonanTarget.LINUX_X64 - val mingwX86 = KonanTarget.MINGW_X86 val mingwX64 = KonanTarget.MINGW_X64 val macosX64 = KonanTarget.MACOS_X64 val macosArm64 = KonanTarget.MACOS_ARM64 val linuxArm64 = KonanTarget.LINUX_ARM64 + + + @Deprecated(DEPRECATED_TARGET_MESSAGE) + val iosArm32 = KonanTarget.IOS_ARM32 + + @Deprecated(DEPRECATED_TARGET_MESSAGE) + val watchosX86 = KonanTarget.WATCHOS_X86 + + @Deprecated(DEPRECATED_TARGET_MESSAGE) + val mingwX86 = KonanTarget.MINGW_X86 + + @Deprecated(DEPRECATED_TARGET_MESSAGE) val linuxArm32Hfp = KonanTarget.LINUX_ARM32_HFP + + @Deprecated(DEPRECATED_TARGET_MESSAGE) val linuxMips32 = KonanTarget.LINUX_MIPS32 + + @Deprecated(DEPRECATED_TARGET_MESSAGE) val linuxMipsel32 = KonanTarget.LINUX_MIPSEL32 + + @Deprecated(DEPRECATED_TARGET_MESSAGE) val wasm32 = KonanTarget.WASM32 } \ No newline at end of file diff --git a/native/utils/src/org/jetbrains/kotlin/konan/target/KonanTarget.kt b/native/utils/src/org/jetbrains/kotlin/konan/target/KonanTarget.kt index 90a9f2333bd..b36eb43e43f 100644 --- a/native/utils/src/org/jetbrains/kotlin/konan/target/KonanTarget.kt +++ b/native/utils/src/org/jetbrains/kotlin/konan/target/KonanTarget.kt @@ -8,18 +8,18 @@ package org.jetbrains.kotlin.konan.target import org.jetbrains.kotlin.konan.util.Named import java.io.Serializable +const val DEPRECATED_TARGET_MESSAGE = "Target is deprecated and will be removed soon" + sealed class KonanTarget(override val name: String, val family: Family, val architecture: Architecture) : Named, Serializable { object ANDROID_X64 : KonanTarget("android_x64", Family.ANDROID, Architecture.X64) object ANDROID_X86 : KonanTarget("android_x86", Family.ANDROID, Architecture.X86) object ANDROID_ARM32 : KonanTarget("android_arm32", Family.ANDROID, Architecture.ARM32) object ANDROID_ARM64 : KonanTarget("android_arm64", Family.ANDROID, Architecture.ARM64) - object IOS_ARM32 : KonanTarget("ios_arm32", Family.IOS, Architecture.ARM32) object IOS_ARM64 : KonanTarget("ios_arm64", Family.IOS, Architecture.ARM64) object IOS_X64 : KonanTarget("ios_x64", Family.IOS, Architecture.X64) object IOS_SIMULATOR_ARM64 : KonanTarget("ios_simulator_arm64", Family.IOS, Architecture.ARM64) object WATCHOS_ARM32 : KonanTarget("watchos_arm32", Family.WATCHOS, Architecture.ARM32) object WATCHOS_ARM64 : KonanTarget("watchos_arm64", Family.WATCHOS, Architecture.ARM64) - object WATCHOS_X86 : KonanTarget("watchos_x86", Family.WATCHOS, Architecture.X86) object WATCHOS_X64 : KonanTarget("watchos_x64", Family.WATCHOS, Architecture.X64) object WATCHOS_SIMULATOR_ARM64 : KonanTarget("watchos_simulator_arm64", Family.WATCHOS, Architecture.ARM64) object WATCHOS_DEVICE_ARM64 : KonanTarget("watchos_device_arm64", Family.WATCHOS, Architecture.ARM64) @@ -27,14 +27,19 @@ sealed class KonanTarget(override val name: String, val family: Family, val arch object TVOS_X64 : KonanTarget("tvos_x64", Family.TVOS, Architecture.X64) object TVOS_SIMULATOR_ARM64 : KonanTarget("tvos_simulator_arm64", Family.TVOS, Architecture.ARM64) object LINUX_X64 : KonanTarget("linux_x64", Family.LINUX, Architecture.X64) - object MINGW_X86 : KonanTarget("mingw_x86", Family.MINGW, Architecture.X86) object MINGW_X64 : KonanTarget("mingw_x64", Family.MINGW, Architecture.X64) object MACOS_X64 : KonanTarget("macos_x64", Family.OSX, Architecture.X64) object MACOS_ARM64 : KonanTarget("macos_arm64", Family.OSX, Architecture.ARM64) object LINUX_ARM64 : KonanTarget("linux_arm64", Family.LINUX, Architecture.ARM64) + + // Deprecated targets. TODO: add deprecations + // Deprecation is not declared right now because otherwise compilation of the project will fail, because warnings will be reported + object IOS_ARM32 : KonanTarget("ios_arm32", Family.IOS, Architecture.ARM32) + object WATCHOS_X86 : KonanTarget("watchos_x86", Family.WATCHOS, Architecture.X86) object LINUX_ARM32_HFP : KonanTarget("linux_arm32_hfp", Family.LINUX, Architecture.ARM32) object LINUX_MIPS32 : KonanTarget("linux_mips32", Family.LINUX, Architecture.MIPS32) object LINUX_MIPSEL32 : KonanTarget("linux_mipsel32", Family.LINUX, Architecture.MIPSEL32) + object MINGW_X86 : KonanTarget("mingw_x86", Family.MINGW, Architecture.X86) object WASM32 : KonanTarget("wasm32", Family.WASM, Architecture.WASM32) // Tunable targets @@ -59,5 +64,7 @@ sealed class KonanTarget(override val name: String, val family: Family, val arch WASM32 ).associateBy { it.name } } + + val deprecatedTargets = setOf(WATCHOS_X86, IOS_ARM32, LINUX_ARM32_HFP, MINGW_X86, LINUX_MIPS32, LINUX_MIPSEL32, WASM32) } }