diff --git a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinMPPGradleProjectResolver.kt b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinMPPGradleProjectResolver.kt index 353332918fe..8118c9e688e 100644 --- a/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinMPPGradleProjectResolver.kt +++ b/idea/idea-gradle/src/org/jetbrains/kotlin/idea/configuration/KotlinMPPGradleProjectResolver.kt @@ -729,7 +729,7 @@ open class KotlinMPPGradleProjectResolver : AbstractProjectResolverExtensionComp val copyFrom = when { compilations.all { it.isAppleCompilation } -> compilations.selectFirstAvailableTarget( - "watchos_arm64", "watchos_arm32", "watchos_x86", + "watchos_arm64", "watchos_arm32", "watchos_x64", "watchos_x86", "ios_arm64", "ios_arm32", "ios_x64", "tvos_arm64", "tvos_x64" ) 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 4c399d9ad4a..db34ca4e9b3 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 @@ -49,11 +49,10 @@ internal val androidPresetEntry = KotlinPresetEntry( // 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.MINGW_X64) -private val nativeTargetsWithSimulatorTests = setOf(KonanTarget.IOS_X64, KonanTarget.WATCHOS_X86, KonanTarget.TVOS_X64) -private val disabledNativeTargets = setOf(KonanTarget.WATCHOS_X64) +private val nativeTargetsWithSimulatorTests = + setOf(KonanTarget.IOS_X64, KonanTarget.WATCHOS_X86, KonanTarget.WATCHOS_X64, KonanTarget.TVOS_X64) internal val nativePresetEntries = HostManager().targets - .filter { (_, target) -> target !in disabledNativeTargets } .map { (_, target) -> val (presetType, targetType) = when (target) { diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinTargetContainerWithPresetFunctions.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinTargetContainerWithPresetFunctions.kt index c80d377663e..1760e84213d 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinTargetContainerWithPresetFunctions.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinTargetContainerWithPresetFunctions.kt @@ -3,7 +3,15 @@ package org.jetbrains.kotlin.gradle.dsl import groovy.lang.Closure import org.gradle.util.ConfigureUtil import org.jetbrains.kotlin.gradle.plugin.KotlinTargetsContainerWithPresets -import org.jetbrains.kotlin.gradle.plugin.mpp.* +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 // DO NOT EDIT MANUALLY! Generated by org.jetbrains.kotlin.generators.gradle.dsl.MppPresetFunctionsCodegenKt @@ -40,6 +48,36 @@ interface KotlinTargetContainerWithPresetFunctions : KotlinTargetsContainerWithP fun android(name: String, configure: Closure<*>) = android(name) { ConfigureUtil.configure(configure, this) } fun android(configure: Closure<*>) = android { ConfigureUtil.configure(configure, this) } + fun androidNativeX64( + name: String = "androidNativeX64", + configure: KotlinNativeTarget.() -> Unit = { } + ): KotlinNativeTarget = + configureOrCreate( + name, + presets.getByName("androidNativeX64") as KotlinNativeTargetPreset, + configure + ) + + fun androidNativeX64() = androidNativeX64("androidNativeX64") { } + fun androidNativeX64(name: String) = androidNativeX64(name) { } + fun androidNativeX64(name: String, configure: Closure<*>) = androidNativeX64(name) { ConfigureUtil.configure(configure, this) } + fun androidNativeX64(configure: Closure<*>) = androidNativeX64 { ConfigureUtil.configure(configure, this) } + + fun androidNativeX86( + name: String = "androidNativeX86", + configure: KotlinNativeTarget.() -> Unit = { } + ): KotlinNativeTarget = + configureOrCreate( + name, + presets.getByName("androidNativeX86") as KotlinNativeTargetPreset, + configure + ) + + fun androidNativeX86() = androidNativeX86("androidNativeX86") { } + fun androidNativeX86(name: String) = androidNativeX86(name) { } + fun androidNativeX86(name: String, configure: Closure<*>) = androidNativeX86(name) { ConfigureUtil.configure(configure, this) } + fun androidNativeX86(configure: Closure<*>) = androidNativeX86 { ConfigureUtil.configure(configure, this) } + fun androidNativeArm32( name: String = "androidNativeArm32", configure: KotlinNativeTarget.() -> Unit = { } @@ -70,36 +108,6 @@ interface KotlinTargetContainerWithPresetFunctions : KotlinTargetsContainerWithP fun androidNativeArm64(name: String, configure: Closure<*>) = androidNativeArm64(name) { ConfigureUtil.configure(configure, this) } fun androidNativeArm64(configure: Closure<*>) = androidNativeArm64 { ConfigureUtil.configure(configure, this) } - fun androidNativeX86( - name: String = "androidNativeX86", - configure: KotlinNativeTarget.() -> Unit = { } - ): KotlinNativeTarget = - configureOrCreate( - name, - presets.getByName("androidNativeX86") as KotlinNativeTargetPreset, - configure - ) - - fun androidNativeX86() = androidNativeX86("androidNativeX86") { } - fun androidNativeX86(name: String) = androidNativeX86(name) { } - fun androidNativeX86(name: String, configure: Closure<*>) = androidNativeX86(name) { ConfigureUtil.configure(configure, this) } - fun androidNativeX86(configure: Closure<*>) = androidNativeX86 { ConfigureUtil.configure(configure, this) } - - fun androidNativeX64( - name: String = "androidNativeX64", - configure: KotlinNativeTarget.() -> Unit = { } - ): KotlinNativeTarget = - configureOrCreate( - name, - presets.getByName("androidNativeX64") as KotlinNativeTargetPreset, - configure - ) - - fun androidNativeX64() = androidNativeX64("androidNativeX64") { } - fun androidNativeX64(name: String) = androidNativeX64(name) { } - fun androidNativeX64(name: String, configure: Closure<*>) = androidNativeX64(name) { ConfigureUtil.configure(configure, this) } - fun androidNativeX64(configure: Closure<*>) = androidNativeX64 { ConfigureUtil.configure(configure, this) } - fun iosArm32( name: String = "iosArm32", configure: KotlinNativeTarget.() -> Unit = { } @@ -190,6 +198,21 @@ interface KotlinTargetContainerWithPresetFunctions : KotlinTargetsContainerWithP fun watchosX86(name: String, configure: Closure<*>) = watchosX86(name) { ConfigureUtil.configure(configure, this) } fun watchosX86(configure: Closure<*>) = watchosX86 { ConfigureUtil.configure(configure, this) } + fun watchosX64( + name: String = "watchosX64", + configure: KotlinNativeTargetWithSimulatorTests.() -> Unit = { } + ): KotlinNativeTargetWithSimulatorTests = + configureOrCreate( + name, + presets.getByName("watchosX64") as KotlinNativeTargetWithSimulatorTestsPreset, + configure + ) + + fun watchosX64() = watchosX64("watchosX64") { } + fun watchosX64(name: String) = watchosX64(name) { } + fun watchosX64(name: String, configure: Closure<*>) = watchosX64(name) { ConfigureUtil.configure(configure, this) } + fun watchosX64(configure: Closure<*>) = watchosX64 { ConfigureUtil.configure(configure, this) } + fun tvosArm64( name: String = "tvosArm64", configure: KotlinNativeTarget.() -> Unit = { } @@ -235,20 +258,50 @@ interface KotlinTargetContainerWithPresetFunctions : KotlinTargetsContainerWithP fun linuxX64(name: String, configure: Closure<*>) = linuxX64(name) { ConfigureUtil.configure(configure, this) } fun linuxX64(configure: Closure<*>) = linuxX64 { ConfigureUtil.configure(configure, this) } - fun linuxArm32Hfp( - name: String = "linuxArm32Hfp", + fun mingwX86( + name: String = "mingwX86", configure: KotlinNativeTarget.() -> Unit = { } ): KotlinNativeTarget = configureOrCreate( name, - presets.getByName("linuxArm32Hfp") as KotlinNativeTargetPreset, + presets.getByName("mingwX86") as KotlinNativeTargetPreset, configure ) - fun linuxArm32Hfp() = linuxArm32Hfp("linuxArm32Hfp") { } - fun linuxArm32Hfp(name: String) = linuxArm32Hfp(name) { } - fun linuxArm32Hfp(name: String, configure: Closure<*>) = linuxArm32Hfp(name) { ConfigureUtil.configure(configure, this) } - fun linuxArm32Hfp(configure: Closure<*>) = linuxArm32Hfp { ConfigureUtil.configure(configure, this) } + fun mingwX86() = mingwX86("mingwX86") { } + fun mingwX86(name: String) = mingwX86(name) { } + fun mingwX86(name: String, configure: Closure<*>) = mingwX86(name) { ConfigureUtil.configure(configure, this) } + fun mingwX86(configure: Closure<*>) = mingwX86 { ConfigureUtil.configure(configure, this) } + + fun mingwX64( + name: String = "mingwX64", + configure: KotlinNativeTargetWithHostTests.() -> Unit = { } + ): KotlinNativeTargetWithHostTests = + configureOrCreate( + name, + presets.getByName("mingwX64") as KotlinNativeTargetWithHostTestsPreset, + configure + ) + + fun mingwX64() = mingwX64("mingwX64") { } + fun mingwX64(name: String) = mingwX64(name) { } + fun mingwX64(name: String, configure: Closure<*>) = mingwX64(name) { ConfigureUtil.configure(configure, this) } + fun mingwX64(configure: Closure<*>) = mingwX64 { ConfigureUtil.configure(configure, this) } + + fun macosX64( + name: String = "macosX64", + configure: KotlinNativeTargetWithHostTests.() -> Unit = { } + ): KotlinNativeTargetWithHostTests = + configureOrCreate( + name, + presets.getByName("macosX64") as KotlinNativeTargetWithHostTestsPreset, + configure + ) + + fun macosX64() = macosX64("macosX64") { } + fun macosX64(name: String) = macosX64(name) { } + fun macosX64(name: String, configure: Closure<*>) = macosX64(name) { ConfigureUtil.configure(configure, this) } + fun macosX64(configure: Closure<*>) = macosX64 { ConfigureUtil.configure(configure, this) } fun linuxArm64( name: String = "linuxArm64", @@ -265,6 +318,21 @@ interface KotlinTargetContainerWithPresetFunctions : KotlinTargetsContainerWithP fun linuxArm64(name: String, configure: Closure<*>) = linuxArm64(name) { ConfigureUtil.configure(configure, this) } fun linuxArm64(configure: Closure<*>) = linuxArm64 { ConfigureUtil.configure(configure, this) } + fun linuxArm32Hfp( + name: String = "linuxArm32Hfp", + configure: KotlinNativeTarget.() -> Unit = { } + ): KotlinNativeTarget = + configureOrCreate( + name, + presets.getByName("linuxArm32Hfp") as KotlinNativeTargetPreset, + configure + ) + + fun linuxArm32Hfp() = linuxArm32Hfp("linuxArm32Hfp") { } + fun linuxArm32Hfp(name: String) = linuxArm32Hfp(name) { } + fun linuxArm32Hfp(name: String, configure: Closure<*>) = linuxArm32Hfp(name) { ConfigureUtil.configure(configure, this) } + fun linuxArm32Hfp(configure: Closure<*>) = linuxArm32Hfp { ConfigureUtil.configure(configure, this) } + fun linuxMips32( name: String = "linuxMips32", configure: KotlinNativeTarget.() -> Unit = { } @@ -295,51 +363,6 @@ interface KotlinTargetContainerWithPresetFunctions : KotlinTargetsContainerWithP fun linuxMipsel32(name: String, configure: Closure<*>) = linuxMipsel32(name) { ConfigureUtil.configure(configure, this) } fun linuxMipsel32(configure: Closure<*>) = linuxMipsel32 { ConfigureUtil.configure(configure, this) } - fun mingwX64( - name: String = "mingwX64", - configure: KotlinNativeTargetWithHostTests.() -> Unit = { } - ): KotlinNativeTargetWithHostTests = - configureOrCreate( - name, - presets.getByName("mingwX64") as KotlinNativeTargetWithHostTestsPreset, - configure - ) - - fun mingwX64() = mingwX64("mingwX64") { } - fun mingwX64(name: String) = mingwX64(name) { } - fun mingwX64(name: String, configure: Closure<*>) = mingwX64(name) { ConfigureUtil.configure(configure, this) } - fun mingwX64(configure: Closure<*>) = mingwX64 { ConfigureUtil.configure(configure, this) } - - fun mingwX86( - name: String = "mingwX86", - configure: KotlinNativeTarget.() -> Unit = { } - ): KotlinNativeTarget = - configureOrCreate( - name, - presets.getByName("mingwX86") as KotlinNativeTargetPreset, - configure - ) - - fun mingwX86() = mingwX86("mingwX86") { } - fun mingwX86(name: String) = mingwX86(name) { } - fun mingwX86(name: String, configure: Closure<*>) = mingwX86(name) { ConfigureUtil.configure(configure, this) } - fun mingwX86(configure: Closure<*>) = mingwX86 { ConfigureUtil.configure(configure, this) } - - fun macosX64( - name: String = "macosX64", - configure: KotlinNativeTargetWithHostTests.() -> Unit = { } - ): KotlinNativeTargetWithHostTests = - configureOrCreate( - name, - presets.getByName("macosX64") as KotlinNativeTargetWithHostTestsPreset, - configure - ) - - fun macosX64() = macosX64("macosX64") { } - fun macosX64(name: String) = macosX64(name) { } - fun macosX64(name: String, configure: Closure<*>) = macosX64(name) { ConfigureUtil.configure(configure, this) } - fun macosX64(configure: Closure<*>) = macosX64 { ConfigureUtil.configure(configure, this) } - fun wasm32( name: String = "wasm32", configure: KotlinNativeTarget.() -> Unit = { } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt index 8fc0ace3c2a..3be776ad08e 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt @@ -183,11 +183,9 @@ class KotlinMultiplatformPlugin( // Note: modifying these sets should also be reflected in the DSL code generator, see 'presetEntries.kt' val nativeTargetsWithHostTests = setOf(LINUX_X64, MACOS_X64, MINGW_X64) - val nativeTargetsWithSimulatorTests = setOf(IOS_X64, WATCHOS_X86, TVOS_X64) - val disabledNativeTargets = setOf(WATCHOS_X64) + val nativeTargetsWithSimulatorTests = setOf(IOS_X64, WATCHOS_X86, WATCHOS_X64, TVOS_X64) HostManager().targets - .filter { (_, konanTarget) -> konanTarget !in disabledNativeTargets } .forEach { (_, konanTarget) -> val targetToAdd = when (konanTarget) { in nativeTargetsWithHostTests -> diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetConfigurator.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetConfigurator.kt index 5a593a75b37..2c9c5d79472 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetConfigurator.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetConfigurator.kt @@ -514,6 +514,7 @@ class KotlinNativeTargetWithSimulatorTestsConfigurator(kotlinPluginVersion: Stri testTask.deviceId = when (target.konanTarget) { KonanTarget.IOS_X64 -> "iPhone 8" KonanTarget.WATCHOS_X86 -> "Apple Watch Series 5 - 44mm" + KonanTarget.WATCHOS_X64 -> "Apple Watch Series 5 - 44mm" KonanTarget.TVOS_X64 -> "Apple TV" else -> error("Simulator tests are not supported for platform ${target.konanTarget.name}") } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/CocoapodsTasks.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/CocoapodsTasks.kt index 0bb529d7438..0c95b11bf8e 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/CocoapodsTasks.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/CocoapodsTasks.kt @@ -136,7 +136,7 @@ open class PodspecTask : DefaultTask() { | spec.pod_target_xcconfig = { | 'KOTLIN_TARGET[sdk=iphonesimulator*]' => 'ios_x64', | 'KOTLIN_TARGET[sdk=iphoneos*]' => '$KOTLIN_TARGET_FOR_IOS_DEVICE', - | 'KOTLIN_TARGET[sdk=watchsimulator*]' => 'watchos_x86', + | 'KOTLIN_TARGET[sdk=watchsimulator*]' => 'watchos_x64', | 'KOTLIN_TARGET[sdk=watchos*]' => '$KOTLIN_TARGET_FOR_WATCHOS_DEVICE', | 'KOTLIN_TARGET[sdk=appletvsimulator*]' => 'tvos_x64', | 'KOTLIN_TARGET[sdk=appletvos*]' => 'tvos_arm64',