[Gradle][KPM] Reference Configurations directly

Configurations are not registered/created lazily which makes
referencing NamedDomainObjectProvider over Configurations unnecessary
for now.
This commit is contained in:
sebastian.sellmair
2021-11-29 10:29:29 +01:00
committed by Space
parent 032981dd83
commit 444b88e438
20 changed files with 131 additions and 166 deletions
@@ -9,34 +9,34 @@ import org.gradle.api.NamedDomainObjectProvider
import org.gradle.api.artifacts.Configuration
interface KotlinDependencyConfigurations {
val apiConfiguration: NamedDomainObjectProvider<Configuration>
val implementationConfiguration: NamedDomainObjectProvider<Configuration>
val compileOnlyConfiguration: NamedDomainObjectProvider<Configuration>
val runtimeOnlyConfiguration: NamedDomainObjectProvider<Configuration>
val apiConfiguration: Configuration
val implementationConfiguration: Configuration
val compileOnlyConfiguration: Configuration
val runtimeOnlyConfiguration: Configuration
/** This configuration includes the dependencies from the refines-parents */
val transitiveApiConfiguration: NamedDomainObjectProvider<Configuration>
val transitiveApiConfiguration: Configuration
/** This configuration includes the dependencies from the refines-parents */
val transitiveImplementationConfiguration: NamedDomainObjectProvider<Configuration>
val transitiveImplementationConfiguration: Configuration
private class Impl(
override val apiConfiguration: NamedDomainObjectProvider<Configuration>,
override val implementationConfiguration: NamedDomainObjectProvider<Configuration>,
override val compileOnlyConfiguration: NamedDomainObjectProvider<Configuration>,
override val runtimeOnlyConfiguration: NamedDomainObjectProvider<Configuration>,
override val transitiveApiConfiguration: NamedDomainObjectProvider<Configuration>,
override val transitiveImplementationConfiguration: NamedDomainObjectProvider<Configuration>
override val apiConfiguration: Configuration,
override val implementationConfiguration: Configuration,
override val compileOnlyConfiguration: Configuration,
override val runtimeOnlyConfiguration: Configuration,
override val transitiveApiConfiguration:Configuration,
override val transitiveImplementationConfiguration: Configuration
) : KotlinDependencyConfigurations
companion object {
fun create(
apiConfiguration: NamedDomainObjectProvider<Configuration>,
implementationConfiguration: NamedDomainObjectProvider<Configuration>,
compileOnlyConfiguration: NamedDomainObjectProvider<Configuration>,
runtimeOnlyConfiguration: NamedDomainObjectProvider<Configuration>,
transitiveApiConfiguration: NamedDomainObjectProvider<Configuration>,
transitiveImplementationConfiguration: NamedDomainObjectProvider<Configuration>
apiConfiguration: Configuration,
implementationConfiguration: Configuration,
compileOnlyConfiguration: Configuration,
runtimeOnlyConfiguration: Configuration,
transitiveApiConfiguration: Configuration,
transitiveImplementationConfiguration: Configuration
): KotlinDependencyConfigurations = Impl(
apiConfiguration = apiConfiguration,
implementationConfiguration = implementationConfiguration,
@@ -18,7 +18,7 @@ interface KotlinGradleVariant : KotlinGradleFragment, KotlinModuleVariant {
val platformType: KotlinPlatformType
// TODO generalize with KotlinCompilation?
val compileDependenciesConfiguration: NamedDomainObjectProvider<Configuration>
val compileDependenciesConfiguration: Configuration
var compileDependencyFiles: FileCollection
@@ -29,28 +29,28 @@ interface KotlinGradleVariant : KotlinGradleFragment, KotlinModuleVariant {
val sourceArchiveTaskName: String
// TODO generalize exposing outputs: what if a variant has more than one such configurations or none?
val apiElementsConfiguration: NamedDomainObjectProvider<Configuration>
val apiElementsConfiguration: Configuration
val gradleVariantNames: Set<String>
}
interface KotlinGradleVariantWithRuntime : KotlinGradleVariant {
// TODO deduplicate with KotlinCompilation?
val runtimeDependenciesConfiguration: NamedDomainObjectProvider<Configuration>
val runtimeDependenciesConfiguration: Configuration
var runtimeDependencyFiles: FileCollection
val runtimeFiles: ConfigurableFileCollection
// TODO generalize exposing outputs: what if a variant has more than one such configurations or none?
val runtimeElementsConfiguration: NamedDomainObjectProvider<Configuration>
val runtimeElementsConfiguration: Configuration
}
interface KotlinNativeVariant : KotlinGradleVariant {
override val platformType: KotlinPlatformType
get() = KotlinPlatformType.native
val hostSpecificMetadataElementsConfiguration: NamedDomainObjectProvider<Configuration>?
val hostSpecificMetadataElementsConfiguration: Configuration?
var enableEndorsedLibraries: Boolean
}