[kpm] Introduce GradleKpm* naming convention (1/2)

All Gradle specific kpm entities shall be disambiguated by using
the `GradleKpm` prefix. For example `MyEntity` shall now be called
`GradleKpmMyEntity` and a subclass would be called like
`GradleKpmSpecialMyEntity`
This commit is contained in:
sebastian.sellmair
2022-05-24 14:30:16 +02:00
committed by Space
parent e55f00c3d9
commit dcd47a89dd
144 changed files with 1651 additions and 1573 deletions
@@ -14,4 +14,4 @@ import org.jetbrains.kotlin.project.model.*
*/
interface GradleKpmCompilerPlugin : Plugin<Project> {
val kpmCompilerPlugin: KpmCompilerPlugin
}
}
@@ -0,0 +1,15 @@
/*
* 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.publish.maven.MavenPublication
interface GradleKpmSingleMavenPublishedModuleHolder {
fun assignMavenPublication(publication: MavenPublication)
fun whenPublicationAssigned(handlePublication: (MavenPublication) -> Unit)
val defaultPublishedModuleSuffix: String?
val publishedMavenModuleCoordinates: PublishedModuleCoordinatesProvider
}
@@ -0,0 +1,46 @@
/*
* 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.file.FileCollection
import org.gradle.api.file.SourceDirectorySet
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilationOutput
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
import org.jetbrains.kotlin.project.model.LanguageSettings
interface GradleKpmVariantCompilationData<T : KotlinCommonOptions> : KotlinCompilationData<T> {
override val owner: GradleKpmVariant
override val project: Project get() = owner.containingModule.project
override val compilationPurpose: String
get() = owner.containingModule.name
override val compilationClassifier: String
get() = owner.name
override val output: KotlinCompilationOutput
get() = owner.compilationOutputs
override val compileKotlinTaskName: String
override val compileAllTaskName: String
override val kotlinSourceDirectoriesByFragmentName: Map<String, SourceDirectorySet>
override val compileDependencyFiles: FileCollection
get() = owner.compileDependencyFiles
override val languageSettings: LanguageSettings
get() = owner.languageSettings
override val platformType: KotlinPlatformType
get() = owner.platformType
override val ownModuleName: String
}
@@ -38,34 +38,3 @@ interface KotlinCompilationData<T : KotlinCommonOptions> {
val friendPaths: Iterable<FileCollection>
}
interface KotlinVariantCompilationData<T : KotlinCommonOptions> : KotlinCompilationData<T> {
override val owner: KpmGradleVariant
override val project: Project get() = owner.containingModule.project
override val compilationPurpose: String
get() = owner.containingModule.name
override val compilationClassifier: String
get() = owner.name
override val output: KotlinCompilationOutput
get() = owner.compilationOutputs
override val compileKotlinTaskName: String
override val compileAllTaskName: String
override val kotlinSourceDirectoriesByFragmentName: Map<String, SourceDirectorySet>
override val compileDependencyFiles: FileCollection
get() = owner.compileDependencyFiles
override val languageSettings: LanguageSettings
get() = owner.languageSettings
override val platformType: KotlinPlatformType
get() = owner.platformType
override val ownModuleName: String
}
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.gradle.plugin.mpp.pm20
import org.gradle.api.artifacts.Configuration
interface KotlinDependencyConfigurations {
interface GradleKpmDependencyConfigurations {
val apiConfiguration: Configuration
val implementationConfiguration: Configuration
val compileOnlyConfiguration: Configuration
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.gradle.plugin.mpp.pm20
import org.gradle.api.artifacts.Configuration
interface KotlinFragmentDependencyConfigurations : KotlinDependencyConfigurations {
interface GradleKpmFragmentDependencyConfigurations : GradleKpmDependencyConfigurations {
/** This configuration includes the dependencies from the refines-parents */
val transitiveApiConfiguration: Configuration
@@ -25,7 +25,7 @@ interface KotlinFragmentDependencyConfigurations : KotlinDependencyConfiguration
override val transitiveApiConfiguration: Configuration,
override val transitiveImplementationConfiguration: Configuration,
override val transitiveRuntimeOnlyConfiguration: Configuration
) : KotlinFragmentDependencyConfigurations
) : GradleKpmFragmentDependencyConfigurations
companion object {
fun create(
@@ -36,7 +36,7 @@ interface KotlinFragmentDependencyConfigurations : KotlinDependencyConfiguration
transitiveApiConfiguration: Configuration,
transitiveImplementationConfiguration: Configuration,
transitiveRuntimeOnlyConfiguration: Configuration
): KotlinFragmentDependencyConfigurations = Impl(
): GradleKpmFragmentDependencyConfigurations = Impl(
apiConfiguration = apiConfiguration,
implementationConfiguration = implementationConfiguration,
compileOnlyConfiguration = compileOnlyConfiguration,
@@ -18,10 +18,10 @@ import org.jetbrains.kotlin.tooling.core.MutableExtras
import org.jetbrains.kotlin.tooling.core.closure
import org.jetbrains.kotlin.tooling.core.withClosure
interface KpmGradleFragment : KpmFragment, HasKotlinDependencies, KotlinFragmentDependencyConfigurations, Named {
interface GradleKpmFragment : KpmFragment, HasKotlinDependencies, GradleKpmFragmentDependencyConfigurations, Named {
override val kotlinSourceRoots: SourceDirectorySet
override val containingModule: KpmGradleModule
override val containingModule: GradleKpmModule
override fun getName(): String = fragmentName
@@ -32,16 +32,16 @@ interface KpmGradleFragment : KpmFragment, HasKotlinDependencies, KotlinFragment
val extras: MutableExtras
fun refines(other: KpmGradleFragment)
fun refines(other: GradleKpmFragment)
fun refines(other: NamedDomainObjectProvider<KpmGradleFragment>)
fun refines(other: NamedDomainObjectProvider<GradleKpmFragment>)
override val declaredRefinesDependencies: Iterable<KpmGradleFragment>
override val declaredRefinesDependencies: Iterable<GradleKpmFragment>
override val refinesClosure: Set<KpmGradleFragment>
override val refinesClosure: Set<GradleKpmFragment>
get() = this.closure { it.declaredRefinesDependencies }
override val withRefinesClosure: Set<KpmGradleFragment>
override val withRefinesClosure: Set<GradleKpmFragment>
get() = this.withClosure { it.declaredRefinesDependencies }
override fun dependencies(configureClosure: Closure<Any?>) =
@@ -69,8 +69,8 @@ interface KpmGradleFragment : KpmFragment, HasKotlinDependencies, KotlinFragment
listOf(transitiveApiConfiguration.name, transitiveImplementationConfiguration.name)
}
val KpmGradleFragment.path: String
val GradleKpmFragment.path: String
get() = "${project.path}/${containingModule.name}/$fragmentName"
val KpmGradleFragment.containingVariants: Set<KpmGradleVariant>
get() = containingModule.variantsContainingFragment(this).map { it as KpmGradleVariant }.toSet()
val GradleKpmFragment.containingVariants: Set<GradleKpmVariant>
get() = containingModule.variantsContainingFragment(this).map { it as GradleKpmVariant }.toSet()
@@ -16,14 +16,14 @@ import org.jetbrains.kotlin.project.model.KpmModule
import org.jetbrains.kotlin.project.model.KpmModuleIdentifier
import org.jetbrains.kotlin.project.model.KpmCompilerPlugin
interface KpmGradleModule : KpmModule, Named, HasKotlinDependencies {
interface GradleKpmModule : KpmModule, Named, HasKotlinDependencies {
val project: Project
val moduleClassifier: String?
override val fragments: ExtensiblePolymorphicDomainObjectContainer<KpmGradleFragment>
override val fragments: ExtensiblePolymorphicDomainObjectContainer<GradleKpmFragment>
// TODO DSL & build script model: find a way to create a flexible typed view on fragments?
override val variants: NamedDomainObjectSet<KpmGradleVariant>
override val variants: NamedDomainObjectSet<GradleKpmVariant>
override val plugins: Set<KpmCompilerPlugin>
@@ -47,10 +47,10 @@ interface KpmGradleModule : KpmModule, Named, HasKotlinDependencies {
// DSL
val common: KpmGradleFragment
get() = fragments.getByName(KpmGradleFragment.COMMON_FRAGMENT_NAME)
val common: GradleKpmFragment
get() = fragments.getByName(GradleKpmFragment.COMMON_FRAGMENT_NAME)
fun common(configure: KpmGradleFragment.() -> Unit) =
fun common(configure: GradleKpmFragment.() -> Unit) =
common.configure()
override fun dependencies(configure: KotlinDependencyHandler.() -> Unit) =
@@ -8,12 +8,11 @@ package org.jetbrains.kotlin.gradle.plugin.mpp.pm20
import org.gradle.api.artifacts.Configuration
import org.gradle.api.file.ConfigurableFileCollection
import org.gradle.api.file.FileCollection
import org.gradle.api.publish.maven.MavenPublication
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilationOutput
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
import org.jetbrains.kotlin.project.model.KpmVariant
interface KpmGradleVariant : KpmGradleFragment, KpmVariant {
interface GradleKpmVariant : GradleKpmFragment, KpmVariant {
val platformType: KotlinPlatformType
// TODO generalize with KotlinCompilation?
@@ -33,7 +32,7 @@ interface KpmGradleVariant : KpmGradleFragment, KpmVariant {
val gradleVariantNames: Set<String>
}
interface KpmGradleVariantWithRuntime : KpmGradleVariant {
interface GradleKpmVariantWithRuntime : GradleKpmVariant {
// TODO deduplicate with KotlinCompilation?
val runtimeDependenciesConfiguration: Configuration
@@ -45,7 +44,7 @@ interface KpmGradleVariantWithRuntime : KpmGradleVariant {
val runtimeElementsConfiguration: Configuration
}
interface KpmNativeVariant : KpmGradleVariant {
interface GradleKpmNativeVariant : GradleKpmVariant {
override val platformType: KotlinPlatformType
get() = KotlinPlatformType.native
@@ -54,13 +53,6 @@ interface KpmNativeVariant : KpmGradleVariant {
var enableEndorsedLibraries: Boolean
}
interface SingleMavenPublishedModuleHolder {
fun assignMavenPublication(publication: MavenPublication)
fun whenPublicationAssigned(handlePublication: (MavenPublication) -> Unit)
val defaultPublishedModuleSuffix: String?
val publishedMavenModuleCoordinates: PublishedModuleCoordinatesProvider
}
interface PublishedModuleCoordinatesProvider {
val group: String
val name: String