diff --git a/libraries/tools/kotlin-gradle-plugin/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin/build.gradle.kts index f72f5d20663..f582da670c5 100644 --- a/libraries/tools/kotlin-gradle-plugin/build.gradle.kts +++ b/libraries/tools/kotlin-gradle-plugin/build.gradle.kts @@ -28,6 +28,8 @@ pill { kotlin.sourceSets.all { languageSettings.optIn("kotlin.RequiresOptIn") + languageSettings.optIn("org.jetbrains.kotlin.gradle.plugin.mpp.external.ExternalVariantApi") + languageSettings.optIn("org.jetbrains.kotlin.gradle.plugin.mpp.external.AdvancedExternalVariantApi") } dependencies { diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/external/ExternalVariantApi.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/external/ExternalVariantApi.kt index 181d256418b..5a674d31cb0 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/external/ExternalVariantApi.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/external/ExternalVariantApi.kt @@ -8,10 +8,14 @@ package org.jetbrains.kotlin.gradle.plugin.mpp.external import org.gradle.api.Project import org.jetbrains.kotlin.gradle.dsl.KotlinTopLevelExtension import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.* +import kotlin.annotation.AnnotationTarget.* @RequiresOptIn("API is intended to build external Kotlin Targets.") annotation class ExternalVariantApi +@RequiresOptIn("API is intended to build external Kotlin Targets *and* is marked as advanced. Consultation with the Kotlin Team advised.") +annotation class AdvancedExternalVariantApi + @ExternalVariantApi val KotlinTopLevelExtension.project: Project get() = this.project @@ -27,4 +31,5 @@ fun KotlinGradleModule.createExternalJvmVariant( } @ExternalVariantApi -val KotlinGradleVariantInternal.compilationData get() = this.compilationData +val KotlinGradleVariantInternal.compilationData + get() = this.compilationData diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleFragmentConfigurationDefinition.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleFragmentConfigurationDefinition.kt index 6129ade6e8d..f2e1aaf2633 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleFragmentConfigurationDefinition.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleFragmentConfigurationDefinition.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.gradle.plugin.mpp.pm20 import org.gradle.api.Project import org.gradle.api.artifacts.Configuration +import org.jetbrains.kotlin.gradle.plugin.mpp.external.AdvancedExternalVariantApi import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.KotlinNameDisambiguation /* Internal abbreviation */ @@ -15,9 +16,10 @@ internal typealias ConfigurationDefinition = KotlinGradleFragmentConfiguratio data class KotlinGradleFragmentConfigurationDefinition( val provider: KotlinGradleFragmentConfigurationProvider, val attributes: KotlinGradleFragmentConfigurationAttributes = KotlinGradleFragmentConfigurationAttributes.None, - val capabilities: KotlinGradleFragmentConfigurationCapabilities = KotlinGradleFragmentConfigurationCapabilities.None, val artifacts: KotlinGradleFragmentConfigurationArtifacts = KotlinGradleFragmentConfigurationArtifacts.None, val relations: KotlinGradleFragmentConfigurationRelation = KotlinGradleFragmentConfigurationRelation.None, + @property:AdvancedExternalVariantApi + val capabilities: KotlinGradleFragmentConfigurationCapabilities = KotlinGradleFragmentConfigurationCapabilities.None, ) /* Internal abbreviation */ @@ -45,5 +47,6 @@ operator fun KotlinGradleFragmentConfigurationDefinit operator fun KotlinGradleFragmentConfigurationDefinition.plus(other: FragmentArtifacts): KotlinGradleFragmentConfigurationDefinition = copy(artifacts = artifacts + other) +@AdvancedExternalVariantApi operator fun KotlinGradleFragmentConfigurationDefinition.plus(other: FragmentCapabilities): KotlinGradleFragmentConfigurationDefinition = copy(capabilities = capabilities + other)