Repository: JetBrains/compose-multiplatform
File: gradle-plugins/compose/src/main/kotlin/org/jetbrains/compose/ComposeExtension.kt (Kotlin)

Code before:
     * by [ComposePlugin.CompilerDependencies]:
     * ```
     * kotlinCompilerPlugin.set(dependencies.compiler.forKotlin("1.7.20"))
     * ```
     * or set it to the Jetpack Compose Compiler:
     * ```
     * kotlinCompilerPlugin.set("androidx.compose.compiler:compiler:1.4.0-alpha02")
     * ```
     * (see available versions here: https://developer.android.com/jetpack/androidx/releases/compose-kotlin#pre-release_kotlin_compatibility)
     */
    val kotlinCompilerPlugin: Property<String?> = objects.nullableProperty()

    /**
     * List of the arguments applied to the Compose Compiler. Example:
     * ```
     * kotlinCompilerPluginArgs.add("suppressKotlinVersionCompatibilityCheck=1.7.21")
     * ```
     * See all available arguments here:
     * https://github.com/androidx/androidx/blob/androidx-main/compose/compiler/compiler-hosted/src/main/java/androidx/compose/compiler/plugins/kotlin/ComposePlugin.kt
     */
    val kotlinCompilerPluginArgs: ListProperty<String> = objects.listProperty(String::class.java)

    /**
     * A set of kotlin platform types to which the Compose Compiler plugin will be applied.
     * By default, it contains all KotlinPlatformType values.
     * It can be used to disable the Compose Compiler plugin for one or more targets:
     * ```
     * platformTypes.set(platformTypes.get() - KotlinPlatformType.native)
     * ```
     */
    @Suppress("MemberVisibilityCanBePrivate")
    val platformTypes: SetProperty<KotlinPlatformType> = objects.setProperty(KotlinPlatformType::class.java).also {
        it.set(KotlinPlatformType.values().toMutableSet())
    }

    val dependencies = ComposePlugin.Dependencies(project)

    /**
     * @param platformType - the type of platform(s) which should not have the Compose Compiler plugin applied.
     * Removes [platformType] from [platformTypes].
     */
    fun excludePlatform(vararg platformType: KotlinPlatformType) {
        platformTypes.set(platformTypes.get() - platformType.toSet())
    }
}


Review comment (suggestion):
```suggestion
     * It can be used to disable the Compose plugin for one or more targets:
```

Code after:
     * by [ComposePlugin.CompilerDependencies]:
     * ```
     * kotlinCompilerPlugin.set(dependencies.compiler.forKotlin("1.7.20"))
     * ```
     * or set it to the Jetpack Compose Compiler:
     * ```
     * kotlinCompilerPlugin.set("androidx.compose.compiler:compiler:1.4.0-alpha02")
     * ```
     * (see available versions here: https://developer.android.com/jetpack/androidx/releases/compose-kotlin#pre-release_kotlin_compatibility)
     */
    val kotlinCompilerPlugin: Property<String?> = objects.nullableProperty()

    /**
     * List of the arguments applied to the Compose Compiler. Example:
     * ```
     * kotlinCompilerPluginArgs.add("suppressKotlinVersionCompatibilityCheck=1.7.21")
     * ```
     * See all available arguments here:
     * https://github.com/androidx/androidx/blob/androidx-main/compose/compiler/compiler-hosted/src/main/java/androidx/compose/compiler/plugins/kotlin/ComposePlugin.kt
     */
    val kotlinCompilerPluginArgs: ListProperty<String> = objects.listProperty(String::class.java)

    /**
     * A set of kotlin platform types to which the Compose plugin will be applied.
     * By default, it contains all KotlinPlatformType values.
     * It can be used to disable the Compose plugin for one or more targets:
     * ```
     * platformTypes.set(platformTypes.get() - KotlinPlatformType.native)
     * ```
     */
    val platformTypes: SetProperty<KotlinPlatformType> = objects.setProperty(KotlinPlatformType::class.java).apply {
        set(KotlinPlatformType.values().toMutableSet())
    }

    val dependencies = ComposePlugin.Dependencies(project)
}