From a7f33819faf4cc30db0beb74ac74fbd8e2dcf262 Mon Sep 17 00:00:00 2001 From: Anton Lakotka Date: Tue, 11 Oct 2022 10:17:37 +0200 Subject: [PATCH] [Gradle] Add workaround for Configuration Cache deserialization Gradle Configuration Cache deserializer doesn't support Kotlin's Objects of a Sealed Class. It creates new instance upon deserialization and thus breaking equals contract in kotlin when's constructions. See more info: https://github.com/gradle/gradle/issues/22347 ^KT-54362 ^KT-54339 Verification Pending --- .../gradle/targets/native/tasks/FatFrameworkTask.kt | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/FatFrameworkTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/FatFrameworkTask.kt index 1d5bff1f7a5..9e00332213a 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/FatFrameworkTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/FatFrameworkTask.kt @@ -244,10 +244,13 @@ open class FatFrameworkTask : DefaultTask() { private val FrameworkDescriptor.plistPlatform: String get() = when (target) { - MACOS_X64, MACOS_ARM64 -> "MacOSX" - IOS_ARM32, IOS_ARM64, IOS_X64, IOS_SIMULATOR_ARM64 -> "iPhoneOS" - TVOS_ARM64, TVOS_X64, TVOS_SIMULATOR_ARM64 -> "AppleTVOS" - WATCHOS_ARM32, WATCHOS_ARM64, WATCHOS_X86, WATCHOS_X64, WATCHOS_SIMULATOR_ARM64, WATCHOS_DEVICE_ARM64 -> "WatchOS" + // remove `is ...` after Gradle Configuration Cache deserialization for Objects of a Sealed Class is fixed + // https://github.com/gradle/gradle/issues/22347 + is MACOS_X64, is MACOS_ARM64 -> "MacOSX" + is IOS_ARM32, is IOS_ARM64, is IOS_X64, is IOS_SIMULATOR_ARM64 -> "iPhoneOS" + is TVOS_ARM64, is TVOS_X64, is TVOS_SIMULATOR_ARM64 -> "AppleTVOS" + is WATCHOS_ARM32, is WATCHOS_ARM64, is WATCHOS_X86, + is WATCHOS_X64, is WATCHOS_SIMULATOR_ARM64, is WATCHOS_DEVICE_ARM64 -> "WatchOS" else -> error("Fat frameworks are not supported for platform `${target.visibleName}`") }