diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/ComposePlugin.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/ComposePlugin.kt index a0c990d3ff..90bc913107 100644 --- a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/ComposePlugin.kt +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/ComposePlugin.kt @@ -16,6 +16,7 @@ import org.jetbrains.compose.desktop.DesktopExtension import org.jetbrains.compose.desktop.application.internal.configureApplicationImpl import org.jetbrains.compose.desktop.application.internal.currentTarget import org.jetbrains.compose.desktop.preview.internal.initializePreview +import org.jetbrains.compose.internal.checkAndWarnAboutComposeWithSerialization import org.jetbrains.compose.web.internal.initializeWeb import org.jetbrains.kotlin.gradle.plugin.KotlinDependencyHandler import org.jetbrains.kotlin.gradle.tasks.KotlinCompile @@ -106,6 +107,8 @@ class ComposePlugin : Plugin { useIR = true } } + + project.checkAndWarnAboutComposeWithSerialization() } object Dependencies { diff --git a/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/internal/WarnAboutComposeWithSerialization.kt b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/internal/WarnAboutComposeWithSerialization.kt new file mode 100644 index 0000000000..8ca6c7f2e9 --- /dev/null +++ b/gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/internal/WarnAboutComposeWithSerialization.kt @@ -0,0 +1,18 @@ +package org.jetbrains.compose.internal + +import org.gradle.api.Project + +internal fun Project.checkAndWarnAboutComposeWithSerialization() { + project.plugins.withId("org.jetbrains.kotlin.plugin.serialization") { + val warningMessage = """ + + >>> COMPOSE WARNING + >>> Project `${project.name}` has `compose` and `kotlinx.serialization` plugins applied! + >>> Consider using these plugins in separate modules to avoid compilation errors + >>> Check more details here: https://github.com/JetBrains/compose-jb/issues/738 + + """.trimIndent() + + logger.warn(warningMessage) + } +}