org.jetbrains.kotlin.gradle.plugin.mpp.pm20.GradleKpmConfigurationSetup.kt Maven / Gradle / Ivy
/*
* Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
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.pm20.util.GradleKpmNameDisambiguation
/* Internal abbreviation */
data class GradleKpmConfigurationSetup(
val provider: GradleKpmConfigurationProvider,
val attributes: GradleKpmConfigurationAttributesSetup = GradleKpmConfigurationAttributesSetup.None,
val artifacts: GradleKpmConfigurationArtifactsSetup = GradleKpmConfigurationArtifactsSetup.None,
val relations: GradleKpmConfigurationRelationSetup = GradleKpmConfigurationRelationSetup.None,
@property:AdvancedKotlinGradlePluginApi
val capabilities: GradleKpmConfigurationCapabilitiesSetup = GradleKpmConfigurationCapabilitiesSetup.None,
)
interface GradleKpmFragmentConfigureContext : GradleKpmNameDisambiguation {
val project: Project get() = module.project
val module: GradleKpmModule
val dependencies: GradleKpmFragmentDependencyConfigurations
}
internal class GradleKpmFragmentConfigureContextImpl(
override val module: GradleKpmModule,
override val dependencies: GradleKpmFragmentDependencyConfigurations,
names: GradleKpmNameDisambiguation
) : GradleKpmFragmentConfigureContext, GradleKpmNameDisambiguation by names
fun GradleKpmConfigurationSetup.withConfigurationProvider(
provider: GradleKpmFragmentConfigureContext.() -> Configuration
) = copy(provider = GradleKpmConfigurationProvider(provider))
operator fun GradleKpmConfigurationSetup.plus(other: GradleKpmConfigurationAttributesSetup):
GradleKpmConfigurationSetup = copy(attributes = attributes + other)
operator fun GradleKpmConfigurationSetup.plus(other: GradleKpmConfigurationArtifactsSetup):
GradleKpmConfigurationSetup = copy(artifacts = artifacts + other)
operator fun GradleKpmConfigurationSetup.plus(other: GradleKpmConfigurationRelationSetup):
GradleKpmConfigurationSetup = copy(relations = relations + other)
@AdvancedKotlinGradlePluginApi
operator fun GradleKpmConfigurationSetup.plus(other: GradleKpmConfigurationCapabilitiesSetup):
GradleKpmConfigurationSetup = copy(capabilities = capabilities + other)