diff --git a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinCompilationData.kt b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinCompilationData.kt index 513e255100a..9e15643eb4f 100644 --- a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinCompilationData.kt +++ b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinCompilationData.kt @@ -39,7 +39,7 @@ interface KotlinCompilationData { } interface KotlinVariantCompilationData : KotlinCompilationData { - override val owner: KotlinGradleVariant + override val owner: KpmGradleVariant override val project: Project get() = owner.containingModule.project @@ -68,4 +68,4 @@ interface KotlinVariantCompilationData : KotlinCompilat get() = owner.platformType override val ownModuleName: String -} \ No newline at end of file +} diff --git a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleFragment.kt b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleFragment.kt index 2cfec87e851..4bcac311a3b 100644 --- a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleFragment.kt +++ b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleFragment.kt @@ -12,16 +12,16 @@ import org.gradle.api.Project import org.gradle.api.file.SourceDirectorySet import org.jetbrains.kotlin.gradle.plugin.HasKotlinDependencies import org.jetbrains.kotlin.gradle.plugin.LanguageSettingsBuilder -import org.jetbrains.kotlin.project.model.KotlinModuleFragment +import org.jetbrains.kotlin.project.model.KpmFragment import org.jetbrains.kotlin.project.model.utils.variantsContainingFragment import org.jetbrains.kotlin.tooling.core.MutableExtras import org.jetbrains.kotlin.tooling.core.closure import org.jetbrains.kotlin.tooling.core.withClosure -interface KotlinGradleFragment : KotlinModuleFragment, HasKotlinDependencies, KotlinFragmentDependencyConfigurations, Named { +interface KpmGradleFragment : KpmFragment, HasKotlinDependencies, KotlinFragmentDependencyConfigurations, Named { override val kotlinSourceRoots: SourceDirectorySet - override val containingModule: KotlinGradleModule + override val containingModule: KpmGradleModule override fun getName(): String = fragmentName @@ -32,11 +32,17 @@ interface KotlinGradleFragment : KotlinModuleFragment, HasKotlinDependencies, Ko val extras: MutableExtras - fun refines(other: KotlinGradleFragment) + fun refines(other: KpmGradleFragment) - fun refines(other: NamedDomainObjectProvider) + fun refines(other: NamedDomainObjectProvider) - override val directRefinesDependencies: Iterable + override val declaredRefinesDependencies: Iterable + + override val refinesClosure: Set + get() = this.closure { it.declaredRefinesDependencies } + + override val withRefinesClosure: Set + get() = this.withClosure { it.declaredRefinesDependencies } override fun dependencies(configureClosure: Closure) = dependencies f@{ project.configure(this@f, configureClosure) } @@ -63,14 +69,8 @@ interface KotlinGradleFragment : KotlinModuleFragment, HasKotlinDependencies, Ko listOf(transitiveApiConfiguration.name, transitiveImplementationConfiguration.name) } -val KotlinGradleFragment.withRefinesClosure: Set - get() = this.withClosure { it.directRefinesDependencies } - -val KotlinGradleFragment.refinesClosure: Set - get() = this.closure { it.directRefinesDependencies } - -val KotlinGradleFragment.path: String +val KpmGradleFragment.path: String get() = "${project.path}/${containingModule.name}/$fragmentName" -val KotlinGradleFragment.containingVariants: Set - get() = containingModule.variantsContainingFragment(this).map { it as KotlinGradleVariant }.toSet() +val KpmGradleFragment.containingVariants: Set + get() = containingModule.variantsContainingFragment(this).map { it as KpmGradleVariant }.toSet() diff --git a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleModule.kt b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleModule.kt index 800773aed65..a29930d4166 100644 --- a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleModule.kt +++ b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleModule.kt @@ -12,18 +12,18 @@ import org.gradle.api.NamedDomainObjectSet import org.gradle.api.Project import org.jetbrains.kotlin.gradle.plugin.HasKotlinDependencies import org.jetbrains.kotlin.gradle.plugin.KotlinDependencyHandler -import org.jetbrains.kotlin.project.model.KotlinModule -import org.jetbrains.kotlin.project.model.KotlinModuleIdentifier +import org.jetbrains.kotlin.project.model.KpmModule +import org.jetbrains.kotlin.project.model.KpmModuleIdentifier import org.jetbrains.kotlin.project.model.KpmCompilerPlugin -interface KotlinGradleModule : KotlinModule, Named, HasKotlinDependencies { +interface KpmGradleModule : KpmModule, Named, HasKotlinDependencies { val project: Project val moduleClassifier: String? - override val fragments: ExtensiblePolymorphicDomainObjectContainer + override val fragments: ExtensiblePolymorphicDomainObjectContainer // TODO DSL & build script model: find a way to create a flexible typed view on fragments? - override val variants: NamedDomainObjectSet + override val variants: NamedDomainObjectSet override val plugins: Set @@ -34,7 +34,7 @@ interface KotlinGradleModule : KotlinModule, Named, HasKotlinDependencies { fun makePublic() companion object { - val KotlinModuleIdentifier.moduleName get() = moduleClassifier ?: MAIN_MODULE_NAME + val KpmModuleIdentifier.moduleName get() = moduleClassifier ?: MAIN_MODULE_NAME const val MAIN_MODULE_NAME = "main" const val TEST_MODULE_NAME = "test" @@ -47,10 +47,10 @@ interface KotlinGradleModule : KotlinModule, Named, HasKotlinDependencies { // DSL - val common: KotlinGradleFragment - get() = fragments.getByName(KotlinGradleFragment.COMMON_FRAGMENT_NAME) + val common: KpmGradleFragment + get() = fragments.getByName(KpmGradleFragment.COMMON_FRAGMENT_NAME) - fun common(configure: KotlinGradleFragment.() -> Unit) = + fun common(configure: KpmGradleFragment.() -> Unit) = common.configure() override fun dependencies(configure: KotlinDependencyHandler.() -> Unit) = diff --git a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleVariant.kt b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleVariant.kt index ea5e6c8d94c..e90cd1aea29 100644 --- a/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleVariant.kt +++ b/libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleVariant.kt @@ -11,9 +11,9 @@ 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.KotlinModuleVariant +import org.jetbrains.kotlin.project.model.KpmVariant -interface KotlinGradleVariant : KotlinGradleFragment, KotlinModuleVariant { +interface KpmGradleVariant : KpmGradleFragment, KpmVariant { val platformType: KotlinPlatformType // TODO generalize with KotlinCompilation? @@ -33,7 +33,7 @@ interface KotlinGradleVariant : KotlinGradleFragment, KotlinModuleVariant { val gradleVariantNames: Set } -interface KotlinGradleVariantWithRuntime : KotlinGradleVariant { +interface KpmGradleVariantWithRuntime : KpmGradleVariant { // TODO deduplicate with KotlinCompilation? val runtimeDependenciesConfiguration: Configuration @@ -45,7 +45,7 @@ interface KotlinGradleVariantWithRuntime : KotlinGradleVariant { val runtimeElementsConfiguration: Configuration } -interface KotlinNativeVariant : KotlinGradleVariant { +interface KpmNativeVariant : KpmGradleVariant { override val platformType: KotlinPlatformType get() = KotlinPlatformType.native diff --git a/libraries/tools/kotlin-gradle-plugin-idea/src/test/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/BackwardsCompatibilityDeserializationTest.kt b/libraries/tools/kotlin-gradle-plugin-idea/src/test/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/BackwardsCompatibilityDeserializationTest.kt index 77319fcfa1b..4fecd821b81 100644 --- a/libraries/tools/kotlin-gradle-plugin-idea/src/test/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/BackwardsCompatibilityDeserializationTest.kt +++ b/libraries/tools/kotlin-gradle-plugin-idea/src/test/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/BackwardsCompatibilityDeserializationTest.kt @@ -17,8 +17,8 @@ import org.jetbrains.kotlin.gradle.kpm.external.ExternalVariantApi import org.jetbrains.kotlin.gradle.kpm.idea.testFixtures.deserialize import org.jetbrains.kotlin.gradle.kpm.idea.testFixtures.serialize import org.jetbrains.kotlin.gradle.plugin.KotlinPm20PluginWrapper -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinIosX64Variant -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinLinuxX64Variant +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KpmIosX64Variant +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KpmLinuxX64Variant import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinPm20ProjectExtension import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.jvm import org.jetbrains.kotlin.tooling.core.extrasKeyOf @@ -49,8 +49,8 @@ class BackwardsCompatibilityDeserializationTest { kotlinExtension.mainAndTest { jvm val native = fragments.create("native") - val linux = fragments.create("linuxX64") - val ios = fragments.create("iosX64") + val linux = fragments.create("linuxX64") + val ios = fragments.create("iosX64") native.refines(common) linux.refines(native) ios.refines(native) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinToolingMetadataIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinToolingMetadataIT.kt index d9efb562c32..9bbc3c2282b 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinToolingMetadataIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinToolingMetadataIT.kt @@ -6,7 +6,7 @@ package org.jetbrains.kotlin.gradle import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleModule +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KpmGradleModule import org.jetbrains.kotlin.gradle.tooling.BuildKotlinToolingMetadataTask import org.jetbrains.kotlin.gradle.tooling.BuildKotlinToolingMetadataTask.Companion.taskNameForKotlinModule import org.jetbrains.kotlin.konan.target.KonanTarget @@ -29,7 +29,7 @@ class KotlinToolingMetadataMppIT : BaseGradleIT() { private val buildKotlinToolingMetadataTaskName get() = if (isKpmModelMappingEnabled) { - taskNameForKotlinModule(KotlinGradleModule.MAIN_MODULE_NAME) + taskNameForKotlinModule(KpmGradleModule.MAIN_MODULE_NAME) } else { BuildKotlinToolingMetadataTask.defaultTaskName } @@ -122,7 +122,7 @@ class KotlinToolingMetadataMppIT : BaseGradleIT() { with(transformProjectWithPluginsDsl("kpm-multi-module-published")) { val expectedMetadataByModule = mapOf Unit>( - KotlinGradleModule.MAIN_MODULE_NAME to { + KpmGradleModule.MAIN_MODULE_NAME to { val nativeTarget = projectTargets.single { it.platformType == KotlinPlatformType.native.name } assertEquals(KonanTarget.LINUX_X64.name, nativeTarget.extras.native?.konanTarget) }, diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kpm-multi-module-published/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kpm-multi-module-published/build.gradle.kts index cc26e59a0c3..983f52c1bf3 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kpm-multi-module-published/build.gradle.kts +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kpm-multi-module-published/build.gradle.kts @@ -17,12 +17,12 @@ kotlin { // feel free to add more modules, variants and fragments mainAndTest { jvm - val linuxX64 by fragments.creating(KotlinLinuxX64Variant::class) + val linuxX64 by fragments.creating(KpmLinuxX64Variant::class) } val secondaryModule by modules.creating { jvm - val linuxArm64 by fragments.creating(KotlinLinuxArm64Variant::class) + val linuxArm64 by fragments.creating(KpmLinuxArm64Variant::class) makePublic() } @@ -34,7 +34,7 @@ kotlin { val integrationTest by modules.creating { jvm - val linuxX64 by fragments.creating(KotlinLinuxX64Variant::class) + val linuxX64 by fragments.creating(KpmLinuxX64Variant::class) } } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kpmTransientPluginOptions/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kpmTransientPluginOptions/build.gradle.kts index 6f01802957d..ccb131ae451 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kpmTransientPluginOptions/build.gradle.kts +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kpmTransientPluginOptions/build.gradle.kts @@ -33,9 +33,9 @@ class KpmPluginWithTransientPluginOptions( ) ) - override fun forMetadataCompilation(fragment: KotlinModuleFragment) = pluginData() - override fun forNativeMetadataCompilation(fragment: KotlinModuleFragment) = pluginData() - override fun forPlatformCompilation(variant: KotlinModuleVariant) = pluginData() + override fun forMetadataCompilation(fragment: KpmFragment) = pluginData() + override fun forNativeMetadataCompilation(fragment: KpmFragment) = pluginData() + override fun forPlatformCompilation(variant: KpmVariant) = pluginData() } class GradleKpmPluginWithTransientPluginOptions : GradleKpmCompilerPlugin { diff --git a/libraries/tools/kotlin-gradle-plugin-kpm-android/src/main/kotlin/org/jetbrains/kotlin/gradle/android/AndroidDsl.kt b/libraries/tools/kotlin-gradle-plugin-kpm-android/src/main/kotlin/org/jetbrains/kotlin/gradle/android/AndroidDsl.kt index 57c7e65c235..c069b2b45df 100644 --- a/libraries/tools/kotlin-gradle-plugin-kpm-android/src/main/kotlin/org/jetbrains/kotlin/gradle/android/AndroidDsl.kt +++ b/libraries/tools/kotlin-gradle-plugin-kpm-android/src/main/kotlin/org/jetbrains/kotlin/gradle/android/AndroidDsl.kt @@ -6,13 +6,13 @@ package org.jetbrains.kotlin.gradle.android -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleFragment +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KpmGradleFragment import org.jetbrains.kotlin.tooling.core.extrasKeyOf import java.io.File import java.io.Serializable internal val androidDslKey = extrasKeyOf() -val KotlinGradleFragment.androidDsl: AndroidDsl? get() = this.extras[androidDslKey] +val KpmGradleFragment.androidDsl: AndroidDsl? get() = this.extras[androidDslKey] class AndroidDsl : Serializable { var compileSdk = 0 diff --git a/libraries/tools/kotlin-gradle-plugin-kpm-android/src/main/kotlin/org/jetbrains/kotlin/gradle/android/KotlinAndroidVariantFactory.kt b/libraries/tools/kotlin-gradle-plugin-kpm-android/src/main/kotlin/org/jetbrains/kotlin/gradle/android/KotlinAndroidVariantFactory.kt index 9b0459b8e1f..4cd4b229382 100644 --- a/libraries/tools/kotlin-gradle-plugin-kpm-android/src/main/kotlin/org/jetbrains/kotlin/gradle/android/KotlinAndroidVariantFactory.kt +++ b/libraries/tools/kotlin-gradle-plugin-kpm-android/src/main/kotlin/org/jetbrains/kotlin/gradle/android/KotlinAndroidVariantFactory.kt @@ -20,8 +20,8 @@ import org.jetbrains.kotlin.gradle.kpm.external.createExternalJvmVariant import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.* -fun KotlinGradleModule.createKotlinAndroidVariant(androidVariant: BaseVariant) { - val androidOutgoingArtifacts = FragmentArtifacts { +fun KpmGradleModule.createKotlinAndroidVariant(androidVariant: BaseVariant) { + val androidOutgoingArtifacts = FragmentArtifacts { variants.create("classes") { variant -> variant.attributes.attribute(AndroidArtifacts.ARTIFACT_TYPE, AndroidArtifacts.ArtifactType.CLASSES_JAR.type) variant.artifact(project.provider { fragment.compilationOutputs.classesDirs.singleFile }) { @@ -37,7 +37,7 @@ fun KotlinGradleModule.createKotlinAndroidVariant(androidVariant: BaseVariant) { } } - val androidElementsAttributes = FragmentAttributes { + val androidElementsAttributes = FragmentAttributes { attribute(BuildTypeAttr.ATTRIBUTE, project.objects.named(androidVariant.buildType.name)) attribute(TARGET_JVM_ENVIRONMENT_ATTRIBUTE, project.objects.named(TargetJvmEnvironment.ANDROID)) } @@ -46,7 +46,7 @@ fun KotlinGradleModule.createKotlinAndroidVariant(androidVariant: BaseVariant) { "android${androidVariant.buildType.name.replaceFirstChar { it.uppercase() }}", KotlinJvmVariantConfig( /* Only swap out configuration that is used. Default setup shall still be applied */ compileDependencies = (DefaultKotlinCompileDependenciesDefinition + - FragmentAttributes { + FragmentAttributes { namedAttribute(TARGET_JVM_ENVIRONMENT_ATTRIBUTE, TargetJvmEnvironment.ANDROID) attribute(KotlinPlatformType.attribute, KotlinPlatformType.androidJvm) }) diff --git a/libraries/tools/kotlin-gradle-plugin-kpm-android/src/main/kotlin/org/jetbrains/kotlin/gradle/android/androidCommonFragment.kt b/libraries/tools/kotlin-gradle-plugin-kpm-android/src/main/kotlin/org/jetbrains/kotlin/gradle/android/androidCommonFragment.kt index 0ed5dee6b6d..0cb0f50567d 100644 --- a/libraries/tools/kotlin-gradle-plugin-kpm-android/src/main/kotlin/org/jetbrains/kotlin/gradle/android/androidCommonFragment.kt +++ b/libraries/tools/kotlin-gradle-plugin-kpm-android/src/main/kotlin/org/jetbrains/kotlin/gradle/android/androidCommonFragment.kt @@ -5,10 +5,10 @@ package org.jetbrains.kotlin.gradle.android -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleFragmentInternal -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleModule +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KpmGradleFragmentInternal +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KpmGradleModule -val KotlinGradleModule.androidCommon: KotlinGradleFragmentInternal +val KpmGradleModule.androidCommon: KpmGradleFragmentInternal get() = (fragments.findByName("androidCommon") ?: fragments.create("androidCommon") { fragment -> fragment.refines(common) - }) as KotlinGradleFragmentInternal + }) as KpmGradleFragmentInternal diff --git a/libraries/tools/kotlin-gradle-plugin-kpm-android/src/main/kotlin/org/jetbrains/kotlin/gradle/android/instrumentedTest.kt b/libraries/tools/kotlin-gradle-plugin-kpm-android/src/main/kotlin/org/jetbrains/kotlin/gradle/android/instrumentedTest.kt index 55934269839..bd97d358947 100644 --- a/libraries/tools/kotlin-gradle-plugin-kpm-android/src/main/kotlin/org/jetbrains/kotlin/gradle/android/instrumentedTest.kt +++ b/libraries/tools/kotlin-gradle-plugin-kpm-android/src/main/kotlin/org/jetbrains/kotlin/gradle/android/instrumentedTest.kt @@ -5,12 +5,12 @@ package org.jetbrains.kotlin.gradle.android -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleModule +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KpmGradleModule import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinPm20ProjectExtension val KotlinPm20ProjectExtension.instrumentedTest get() = modules.maybeCreate("instrumentedTest") -fun KotlinPm20ProjectExtension.instrumentedTest(configure: KotlinGradleModule.() -> Unit) { +fun KotlinPm20ProjectExtension.instrumentedTest(configure: KpmGradleModule.() -> Unit) { instrumentedTest.apply(configure) } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinProjectExtension.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinProjectExtension.kt index b462913e189..4c8faef3312 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinProjectExtension.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinProjectExtension.kt @@ -18,8 +18,6 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTarget import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsSingleTargetPreset import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinWithJavaTarget import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.DefaultKpmGradleProjectModelContainer -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleModule -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleModuleFactory import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinPm20ProjectExtension import org.jetbrains.kotlin.gradle.plugin.statistics.KotlinBuildStatsService import org.jetbrains.kotlin.gradle.targets.js.calculateJsCompilerType @@ -27,7 +25,6 @@ import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsTargetDsl import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrSingleTargetPreset import org.jetbrains.kotlin.gradle.tasks.CompileUsingKotlinDaemon import org.jetbrains.kotlin.gradle.tasks.withType -import org.jetbrains.kotlin.gradle.utils.SingleWarningPerBuild import org.jetbrains.kotlin.gradle.utils.castIsolatedKotlinPluginClassLoaderAware import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName import org.jetbrains.kotlin.konan.target.CompilerOutputKind @@ -304,4 +301,4 @@ enum class NativeCacheKind(val produce: String?, val outputKind: CompilerOutputK fun byCompilerArgument(argument: String): NativeCacheKind? = NativeCacheKind.values().firstOrNull { it.name.equals(argument, ignoreCase = true) } } -} \ No newline at end of file +} diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/KotlinDependenciesManagement.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/KotlinDependenciesManagement.kt index 5bcd3207693..c4e19b061ea 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/KotlinDependenciesManagement.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/internal/KotlinDependenciesManagement.kt @@ -22,8 +22,8 @@ import org.jetbrains.kotlin.gradle.execution.KotlinAggregateExecutionSource import org.jetbrains.kotlin.gradle.plugin.* import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider import org.jetbrains.kotlin.gradle.plugin.mpp.* -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleFragment -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleModule +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KpmGradleFragment +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KpmGradleModule import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.hasKpmModel import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.kpmModules import org.jetbrains.kotlin.gradle.plugin.sources.KotlinDependencyScope @@ -134,8 +134,8 @@ internal fun configureStdlibDefaultDependency(project: Project) = with(project) private fun addStdlibToKpmProject( project: Project ) { - project.kpmModules.matching { it.name == KotlinGradleModule.MAIN_MODULE_NAME }.configureEach { main -> - main.fragments.matching { it.name == KotlinGradleFragment.COMMON_FRAGMENT_NAME }.configureEach { common -> + project.kpmModules.matching { it.name == KpmGradleModule.MAIN_MODULE_NAME }.configureEach { main -> + main.fragments.matching { it.name == KpmGradleFragment.COMMON_FRAGMENT_NAME }.configureEach { common -> common.dependencies { api(project.kotlinDependency("kotlin-stdlib-common", project.topLevelExtension.coreLibrariesVersion)) } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/external/ExternalVariantApi.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/external/ExternalVariantApi.kt index 81404a3de8d..94e5a5edda4 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/external/ExternalVariantApi.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/external/ExternalVariantApi.kt @@ -22,16 +22,15 @@ val KotlinPm20ProjectExtension.ideaKotlinProjectModelBuilder: IdeaKotlinProjectM get() = this.ideaKotlinProjectModelBuilder @ExternalVariantApi -fun KotlinGradleModule.createExternalJvmVariant( +fun KpmGradleModule.createExternalJvmVariant( name: String, config: KotlinJvmVariantConfig -): KotlinJvmVariant { +): KpmJvmVariant { val variant = KotlinJvmVariantFactory(this, config).create(name) fragments.add(variant) return variant } @ExternalVariantApi -val KotlinGradleVariantInternal.compilationData +val KpmGradleVariantInternal.compilationData get() = this.compilationData - diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/ExternalVariantPlatformDependencyResolutionDsl.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/ExternalVariantPlatformDependencyResolutionDsl.kt index c4a785db4b7..250e12a56b0 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/ExternalVariantPlatformDependencyResolutionDsl.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/ExternalVariantPlatformDependencyResolutionDsl.kt @@ -35,7 +35,7 @@ class IdeaKotlinPlatformDependencyResolutionDslHandle internal constructor( private val additionalDependencies = mutableListOf() @ExternalVariantPlatformDependencyResolutionDsl - var platformResolutionAttributes: FragmentAttributes? = null + var platformResolutionAttributes: FragmentAttributes? = null @ExternalVariantPlatformDependencyResolutionDsl class ArtifactViewDslHandle( @@ -43,10 +43,10 @@ class IdeaKotlinPlatformDependencyResolutionDslHandle internal constructor( var binaryType: String ) { @ExternalVariantPlatformDependencyResolutionDsl - var attributes: FragmentAttributes = FragmentAttributes { } + var attributes: FragmentAttributes = FragmentAttributes { } @ExternalVariantPlatformDependencyResolutionDsl - fun attributes(setAttributes: KotlinGradleFragmentConfigurationAttributesContext.() -> Unit) { + fun attributes(setAttributes: KotlinGradleFragmentConfigurationAttributesContext.() -> Unit) { attributes += FragmentAttributes(setAttributes) } } @@ -64,7 +64,7 @@ class IdeaKotlinPlatformDependencyResolutionDslHandle internal constructor( @ExternalVariantPlatformDependencyResolutionDsl fun withPlatformResolutionAttributes( - setAttributes: KotlinGradleFragmentConfigurationAttributesContext.() -> Unit + setAttributes: KotlinGradleFragmentConfigurationAttributesContext.() -> Unit ) { val additionalAttributes = FragmentAttributes(setAttributes) this.platformResolutionAttributes = platformResolutionAttributes?.plus(additionalAttributes) ?: additionalAttributes @@ -76,7 +76,7 @@ class IdeaKotlinPlatformDependencyResolutionDslHandle internal constructor( } @ExternalVariantPlatformDependencyResolutionDsl - fun additionalDependencies(dependencyProvider: (KotlinGradleFragment) -> List) { + fun additionalDependencies(dependencyProvider: (KpmGradleFragment) -> List) { this.additionalDependencies += IdeaKotlinDependencyResolver { fragment -> dependencyProvider(fragment).toSet() } } @@ -130,7 +130,7 @@ class IdeaKotlinPlatformDependencyResolutionDslHandle internal constructor( return parentConstraint and this.constraint } - private fun buildPlatformResolutionAttributes(): FragmentAttributes? { + private fun buildPlatformResolutionAttributes(): FragmentAttributes? { val parentAttributes = parent?.buildPlatformResolutionAttributes() ?: return this.platformResolutionAttributes return parentAttributes + (this.platformResolutionAttributes ?: return parentAttributes) } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinDependencyEffect.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinDependencyEffect.kt index 3793a244549..c81095eecfb 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinDependencyEffect.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinDependencyEffect.kt @@ -5,7 +5,7 @@ package org.jetbrains.kotlin.gradle.kpm.idea -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleFragment +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KpmGradleFragment /** * An [IdeaKotlinDependencyEffect] is invoked last in the dependency resolution pipeline. @@ -13,7 +13,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleFragment * that the dependency resolution result is final. */ fun interface IdeaKotlinDependencyEffect { - operator fun invoke(fragment: KotlinGradleFragment, dependencies: Set) + operator fun invoke(fragment: KpmGradleFragment, dependencies: Set) } fun IdeaKotlinDependencyResolver.withEffect(effect: IdeaKotlinDependencyEffect) = IdeaKotlinDependencyResolver { fragment -> diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinDependencyLogger.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinDependencyLogger.kt index d1de8874088..45e616e7eda 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinDependencyLogger.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinDependencyLogger.kt @@ -5,12 +5,12 @@ package org.jetbrains.kotlin.gradle.kpm.idea -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleFragment +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KpmGradleFragment import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.path internal object IdeaKotlinDependencyLogger : IdeaKotlinDependencyEffect { override fun invoke( - fragment: KotlinGradleFragment, dependencies: Set + fragment: KpmGradleFragment, dependencies: Set ) { val fragmentPathRegex = fragment.project.properties["idea.kotlin.log.dependencies"]?.toString() ?: return if (!fragment.path.matches(Regex(fragmentPathRegex))) return diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinDependencyResolver.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinDependencyResolver.kt index 4779c59172d..beeedf56e94 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinDependencyResolver.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinDependencyResolver.kt @@ -5,13 +5,13 @@ package org.jetbrains.kotlin.gradle.kpm.idea -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleFragment +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KpmGradleFragment fun interface IdeaKotlinDependencyResolver { - fun resolve(fragment: KotlinGradleFragment): Set + fun resolve(fragment: KpmGradleFragment): Set object Empty : IdeaKotlinDependencyResolver { - override fun resolve(fragment: KotlinGradleFragment): Set = emptySet() + override fun resolve(fragment: KpmGradleFragment): Set = emptySet() } } @@ -48,7 +48,7 @@ operator fun IdeaKotlinDependencyResolver.plus( private class CompositeIdeaKotlinDependencyResolver( val children: List ) : IdeaKotlinDependencyResolver { - override fun resolve(fragment: KotlinGradleFragment): Set { + override fun resolve(fragment: KpmGradleFragment): Set { return children.flatMap { child -> child.resolve(fragment) }.toSet() } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinDependencyTransformer.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinDependencyTransformer.kt index f1aff20b89e..e286bf1e136 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinDependencyTransformer.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinDependencyTransformer.kt @@ -5,7 +5,7 @@ package org.jetbrains.kotlin.gradle.kpm.idea -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleFragment +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KpmGradleFragment /** * An [IdeaKotlinDependencyTransformer] will be invoked after all [IdeaKotlinDependencyResolver] finished. @@ -17,7 +17,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleFragment */ fun interface IdeaKotlinDependencyTransformer { fun transform( - fragment: KotlinGradleFragment, dependencies: Set + fragment: KpmGradleFragment, dependencies: Set ): Set } @@ -54,7 +54,7 @@ private class CompositeIdeaKotlinDependencyTransformer( val transformers: List ) : IdeaKotlinDependencyTransformer { override fun transform( - fragment: KotlinGradleFragment, dependencies: Set + fragment: KpmGradleFragment, dependencies: Set ): Set { return transformers.fold(dependencies) { currentDependencies, transformer -> transformer.transform(fragment, currentDependencies) } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinFragmentBuilder.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinFragmentBuilder.kt index 3da89fee990..35cbaa0e9af 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinFragmentBuilder.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinFragmentBuilder.kt @@ -8,12 +8,12 @@ package org.jetbrains.kotlin.gradle.kpm.idea import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.* import org.jetbrains.kotlin.tooling.core.emptyExtras -internal fun IdeaKotlinProjectModelBuildingContext.IdeaKotlinFragment(fragment: KotlinGradleFragment): IdeaKotlinFragment { - return if (fragment is KotlinGradleVariant) buildIdeaKotlinVariant(fragment) +internal fun IdeaKotlinProjectModelBuildingContext.IdeaKotlinFragment(fragment: KpmGradleFragment): IdeaKotlinFragment { + return if (fragment is KpmGradleVariant) buildIdeaKotlinVariant(fragment) else buildIdeaKotlinFragment(fragment) } -private fun IdeaKotlinProjectModelBuildingContext.buildIdeaKotlinFragment(fragment: KotlinGradleFragment): IdeaKotlinFragment { +private fun IdeaKotlinProjectModelBuildingContext.buildIdeaKotlinFragment(fragment: KpmGradleFragment): IdeaKotlinFragment { return IdeaKotlinFragmentImpl( coordinates = IdeaKotlinFragmentCoordinates(fragment), platforms = fragment.containingVariants.map { variant -> IdeaKotlinPlatform(variant) }.toSet(), @@ -25,7 +25,7 @@ private fun IdeaKotlinProjectModelBuildingContext.buildIdeaKotlinFragment(fragme ) } -private fun IdeaKotlinProjectModelBuildingContext.buildIdeaKotlinVariant(variant: KotlinGradleVariant): IdeaKotlinVariant { +private fun IdeaKotlinProjectModelBuildingContext.buildIdeaKotlinVariant(variant: KpmGradleVariant): IdeaKotlinVariant { return IdeaKotlinVariantImpl( fragment = buildIdeaKotlinFragment(variant), platform = IdeaKotlinPlatform(variant), diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinFragmentCoordinatesBuilder.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinFragmentCoordinatesBuilder.kt index 4946ab0d68b..1e6a7052006 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinFragmentCoordinatesBuilder.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinFragmentCoordinatesBuilder.kt @@ -5,9 +5,9 @@ package org.jetbrains.kotlin.gradle.kpm.idea -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleFragment +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KpmGradleFragment -internal fun IdeaKotlinFragmentCoordinates(fragment: KotlinGradleFragment): IdeaKotlinFragmentCoordinates { +internal fun IdeaKotlinFragmentCoordinates(fragment: KpmGradleFragment): IdeaKotlinFragmentCoordinates { return IdeaKotlinFragmentCoordinatesImpl( module = IdeaKotlinModuleCoordinates(fragment.containingModule), fragmentName = fragment.name diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinGranularFragmentDependencyResolver.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinGranularFragmentDependencyResolver.kt index 1c6ce3cba19..47b93eb8091 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinGranularFragmentDependencyResolver.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinGranularFragmentDependencyResolver.kt @@ -8,22 +8,22 @@ package org.jetbrains.kotlin.gradle.kpm.idea import org.gradle.api.artifacts.component.ProjectComponentIdentifier import org.jetbrains.kotlin.gradle.plugin.mpp.MetadataDependencyResolution.ChooseVisibleSourceSets import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.FragmentGranularMetadataResolverFactory -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleFragment -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleModule.Companion.moduleName +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KpmGradleFragment +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KpmGradleModule.Companion.moduleName import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.currentBuildId import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.toModuleDependency internal class IdeaKotlinGranularFragmentDependencyResolver( private val fragmentGranularMetadataResolverFactory: FragmentGranularMetadataResolverFactory ) : IdeaKotlinDependencyResolver { - override fun resolve(fragment: KotlinGradleFragment): Set { + override fun resolve(fragment: KpmGradleFragment): Set { return fragmentGranularMetadataResolverFactory.getOrCreate(fragment).resolutions .filterIsInstance() .flatMap { resolution -> resolve(fragment, resolution) } .toSet() } - private fun resolve(fragment: KotlinGradleFragment, resolution: ChooseVisibleSourceSets): Iterable { + private fun resolve(fragment: KpmGradleFragment, resolution: ChooseVisibleSourceSets): Iterable { val gradleProjectIdentifier = resolution.dependency.id as? ProjectComponentIdentifier ?: return emptyList() val kotlinModuleIdentifier = resolution.dependency.toModuleDependency().moduleIdentifier return resolution.allVisibleSourceSetNames.map { visibleFragmentName -> diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinMetadataBinaryDependencyResolver.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinMetadataBinaryDependencyResolver.kt index 02bd55a431c..1ff68d6a262 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinMetadataBinaryDependencyResolver.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinMetadataBinaryDependencyResolver.kt @@ -10,22 +10,22 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.MetadataDependencyResolution.Choos import org.jetbrains.kotlin.gradle.plugin.mpp.MetadataDependencyResolution.ChooseVisibleSourceSets.MetadataProvider.JarMetadataProvider import org.jetbrains.kotlin.gradle.plugin.mpp.MetadataDependencyResolution.ChooseVisibleSourceSets.MetadataProvider.ProjectMetadataProvider import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.FragmentGranularMetadataResolverFactory -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleFragment -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleModule.Companion.moduleName +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KpmGradleFragment +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KpmGradleModule.Companion.moduleName import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.toModuleDependency import org.jetbrains.kotlin.gradle.utils.withTemporaryDirectory internal class IdeaKotlinMetadataBinaryDependencyResolver( private val fragmentGranularMetadataResolverFactory: FragmentGranularMetadataResolverFactory ) : IdeaKotlinDependencyResolver { - override fun resolve(fragment: KotlinGradleFragment): Set { + override fun resolve(fragment: KpmGradleFragment): Set { return fragmentGranularMetadataResolverFactory.getOrCreate(fragment).resolutions .filterIsInstance() .flatMap { resolution -> resolve(fragment, resolution) } .toSet() } - private fun resolve(fragment: KotlinGradleFragment, resolution: ChooseVisibleSourceSets): Iterable { + private fun resolve(fragment: KpmGradleFragment, resolution: ChooseVisibleSourceSets): Iterable { val gradleModuleIdentifier = resolution.dependency.id as? ModuleComponentIdentifier ?: return emptySet() val kotlinModuleIdentifier = resolution.dependency.toModuleDependency().moduleIdentifier diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinMissingFileDependencyLogger.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinMissingFileDependencyLogger.kt index 3cee4fb9185..93abdb0bb2e 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinMissingFileDependencyLogger.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinMissingFileDependencyLogger.kt @@ -5,18 +5,18 @@ package org.jetbrains.kotlin.gradle.kpm.idea -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleFragment +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KpmGradleFragment import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.path import org.jetbrains.kotlin.utils.addToStdlib.ifNotEmpty internal object IdeaKotlinMissingFileDependencyLogger : IdeaKotlinDependencyEffect { - override fun invoke(fragment: KotlinGradleFragment, dependencies: Set) { + override fun invoke(fragment: KpmGradleFragment, dependencies: Set) { dependencies.filterIsInstance() .filter { !it.binaryFile.exists() } .ifNotEmpty { fragment.project.logger.warn(buildWarningMessage(fragment, this)) } } - private fun buildWarningMessage(fragment: KotlinGradleFragment, dependencies: List) = buildString { + private fun buildWarningMessage(fragment: KpmGradleFragment, dependencies: List) = buildString { append("[WARNING] ${fragment.path}: Missing dependency files") dependencies.forEach { dependency -> appendLine(dependency.binaryFile) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinModuleBuilder.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinModuleBuilder.kt index 1ae44b85527..b7b0830534b 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinModuleBuilder.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinModuleBuilder.kt @@ -5,9 +5,9 @@ package org.jetbrains.kotlin.gradle.kpm.idea -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleModule +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KpmGradleModule -internal fun IdeaKotlinProjectModelBuildingContext.IdeaKotlinModule(module: KotlinGradleModule): IdeaKotlinModule { +internal fun IdeaKotlinProjectModelBuildingContext.IdeaKotlinModule(module: KpmGradleModule): IdeaKotlinModule { return IdeaKotlinModuleImpl( coordinates = IdeaKotlinModuleCoordinates(module), fragments = module.fragments.toList().map { fragment -> IdeaKotlinFragment(fragment) } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinModuleCoordinatesBuilder.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinModuleCoordinatesBuilder.kt index 25af4be0e72..d458a0326b8 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinModuleCoordinatesBuilder.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinModuleCoordinatesBuilder.kt @@ -5,10 +5,10 @@ package org.jetbrains.kotlin.gradle.kpm.idea -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleModule +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KpmGradleModule import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.currentBuildId -internal fun IdeaKotlinModuleCoordinates(module: KotlinGradleModule): IdeaKotlinModuleCoordinates { +internal fun IdeaKotlinModuleCoordinates(module: KpmGradleModule): IdeaKotlinModuleCoordinates { return IdeaKotlinModuleCoordinatesImpl( buildId = module.project.currentBuildId().name, projectPath = module.project.path, diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinNativePlatformDependencyResolver.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinNativePlatformDependencyResolver.kt index a7743f03e56..9202906deb6 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinNativePlatformDependencyResolver.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinNativePlatformDependencyResolver.kt @@ -10,8 +10,8 @@ import org.jetbrains.kotlin.commonizer.KonanDistribution import org.jetbrains.kotlin.commonizer.platformLibsDir import org.jetbrains.kotlin.compilerRunner.konanHome import org.jetbrains.kotlin.gradle.plugin.getKotlinPluginVersion -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleFragment -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinNativeVariantInternal +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KpmGradleFragment +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KpmNativeVariantInternal import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.containingVariants import org.jetbrains.kotlin.library.ToolingSingleFileKlibResolveStrategy import org.jetbrains.kotlin.library.resolveSingleFileKlib @@ -20,9 +20,9 @@ import org.jetbrains.kotlin.library.uniqueName import java.io.File internal class IdeaKotlinNativePlatformDependencyResolver : IdeaKotlinDependencyResolver { - override fun resolve(fragment: KotlinGradleFragment): Set { + override fun resolve(fragment: KpmGradleFragment): Set { val konanTargets = fragment.containingVariants - .map { it as? KotlinNativeVariantInternal ?: return emptySet() } + .map { it as? KpmNativeVariantInternal ?: return emptySet() } .map { it.konanTarget } .toSet() diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinNativeStdlibDependencyResolver.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinNativeStdlibDependencyResolver.kt index cc5ca5e1e9e..1d8ba868e2a 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinNativeStdlibDependencyResolver.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinNativeStdlibDependencyResolver.kt @@ -9,10 +9,10 @@ import org.jetbrains.kotlin.commonizer.KonanDistribution import org.jetbrains.kotlin.commonizer.stdlib import org.jetbrains.kotlin.compilerRunner.konanHome import org.jetbrains.kotlin.gradle.plugin.getKotlinPluginVersion -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleFragment +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KpmGradleFragment internal object IdeaKotlinNativeStdlibDependencyResolver : IdeaKotlinDependencyResolver { - override fun resolve(fragment: KotlinGradleFragment): Set { + override fun resolve(fragment: KpmGradleFragment): Set { return setOf( IdeaKotlinResolvedBinaryDependencyImpl( binaryType = IdeaKotlinDependency.CLASSPATH_BINARY_TYPE, diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinOriginalMetadataDependencyResolver.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinOriginalMetadataDependencyResolver.kt index 65c2680fe65..274e2cf18c2 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinOriginalMetadataDependencyResolver.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinOriginalMetadataDependencyResolver.kt @@ -9,13 +9,13 @@ import org.gradle.api.artifacts.component.ModuleComponentIdentifier import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType import org.jetbrains.kotlin.gradle.plugin.mpp.MetadataDependencyResolution.KeepOriginalDependency import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.FragmentGranularMetadataResolverFactory -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleFragment +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KpmGradleFragment import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.resolvableMetadataConfigurationName internal class IdeaKotlinOriginalMetadataDependencyResolver( private val fragmentGranularMetadataResolverFactory: FragmentGranularMetadataResolverFactory ) : IdeaKotlinDependencyResolver { - override fun resolve(fragment: KotlinGradleFragment): Set { + override fun resolve(fragment: KpmGradleFragment): Set { val dependencyIdentifiers = fragmentGranularMetadataResolverFactory.getOrCreate(fragment).resolutions .filterIsInstance() .mapNotNull { resolution -> resolution.dependency.id as? ModuleComponentIdentifier } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinPlatformBuilder.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinPlatformBuilder.kt index d8192bd992c..1589bf390cc 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinPlatformBuilder.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinPlatformBuilder.kt @@ -14,10 +14,10 @@ import org.jetbrains.kotlin.konan.target.HostManager @Suppress("unused") /* Receiver acts as scope, or key to that function */ -internal fun IdeaKotlinProjectModelBuildingContext.IdeaKotlinPlatform(variant: KotlinGradleVariant): IdeaKotlinPlatform { +internal fun IdeaKotlinProjectModelBuildingContext.IdeaKotlinPlatform(variant: KpmGradleVariant): IdeaKotlinPlatform { when (variant) { - is KotlinJvmVariant -> return IdeaKotlinPlatform.jvm(variant.compilationData.kotlinOptions.jvmTarget ?: JvmTarget.DEFAULT.name) - is KotlinNativeVariantInternal -> return IdeaKotlinPlatform.native(variant.konanTarget.name) + is KpmJvmVariant -> return IdeaKotlinPlatform.jvm(variant.compilationData.kotlinOptions.jvmTarget ?: JvmTarget.DEFAULT.name) + is KpmNativeVariantInternal -> return IdeaKotlinPlatform.native(variant.konanTarget.name) is LegacyMappedVariant -> when (val compilation = variant.compilation) { is KotlinJvmCompilation -> return IdeaKotlinPlatform.jvm(compilation.kotlinOptions.jvmTarget ?: JvmTarget.DEFAULT.name) is KotlinJvmAndroidCompilation -> return IdeaKotlinPlatform.jvm(compilation.kotlinOptions.jvmTarget ?: JvmTarget.DEFAULT.name) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinPlatformDependencyResolver.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinPlatformDependencyResolver.kt index cd3810bddd7..779f2ea4b47 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinPlatformDependencyResolver.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinPlatformDependencyResolver.kt @@ -20,7 +20,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.FragmentAttributes * Resolves 'platform' binary dependencies for a given variant or fragment. * 'platform' binaries refer to actually linkable/executable artifacts (like .class files bundled as jar, or linkable native klibs) * This resolver is capable of resolving those artifacts even for non-variant "platform-like" fragments. - * It will then use the [KotlinGradleFragment.transitiveApiConfiguration] and [KotlinGradleFragment.transitiveImplementationConfiguratione]'s + * It will then use the [KpmGradleFragment.transitiveApiConfiguration] and [KpmGradleFragment.transitiveImplementationConfiguratione]'s * to resolve those binaries. See [IdeaKotlinPlatformDependencyResolver.ArtifactResolution.PlatformFragment] */ class IdeaKotlinPlatformDependencyResolver( @@ -30,28 +30,28 @@ class IdeaKotlinPlatformDependencyResolver( sealed class ArtifactResolution { /** - * Resolve the artifacts from a [KotlinGradleVariant] using its [KotlinGradleVariant.compileDependenciesConfiguration], + * Resolve the artifacts from a [KpmGradleVariant] using its [KpmGradleVariant.compileDependenciesConfiguration], * which already knows how to resolve platform artifacts. * @param artifactViewAttributes: Additional attributes that will be used to create an [ArtifactView] for resolving the dependencies. */ data class Variant( - internal val artifactViewAttributes: FragmentAttributes = FragmentAttributes { } + internal val artifactViewAttributes: FragmentAttributes = FragmentAttributes { } ) : ArtifactResolution() /** - * Capable of resolving artifacts from a plain [KotlinGradleFragment] which does not have to implement [KotlinGradleVariant]. + * Capable of resolving artifacts from a plain [KpmGradleFragment] which does not have to implement [KpmGradleVariant]. * Such fragments are called 'platform-like', since they still resolve the linkable platform dependencies. * @param platformResolutionAttributes: Attributes describing how to resolve platform artifacts in general. * @param artifactViewAttributes: Additional attributes that will be used to create an [ArtifactView] for * resolving the dependencies */ data class PlatformFragment( - internal val platformResolutionAttributes: FragmentAttributes, - internal val artifactViewAttributes: FragmentAttributes = FragmentAttributes { }, + internal val platformResolutionAttributes: FragmentAttributes, + internal val artifactViewAttributes: FragmentAttributes = FragmentAttributes { }, ) : ArtifactResolution() } - override fun resolve(fragment: KotlinGradleFragment): Set { + override fun resolve(fragment: KpmGradleFragment): Set { val artifacts = artifactResolution.createArtifactView(fragment)?.artifacts ?: return emptySet() val unresolvedDependencies = artifacts.failures @@ -87,15 +87,15 @@ private val ComponentIdentifier.ideaKotlinBinaryCoordinates: IdeaKotlinBinaryCoo else -> null } -private fun ArtifactResolution.createArtifactView(fragment: KotlinGradleFragment): ArtifactView? { +private fun ArtifactResolution.createArtifactView(fragment: KpmGradleFragment): ArtifactView? { return when (this) { is ArtifactResolution.Variant -> createVariantArtifactView(fragment) is ArtifactResolution.PlatformFragment -> createPlatformFragmentArtifactView(fragment) } } -private fun ArtifactResolution.Variant.createVariantArtifactView(fragment: KotlinGradleFragment): ArtifactView? { - if (fragment !is KotlinGradleVariant) return null +private fun ArtifactResolution.Variant.createVariantArtifactView(fragment: KpmGradleFragment): ArtifactView? { + if (fragment !is KpmGradleVariant) return null return fragment.compileDependenciesConfiguration.incoming.artifactView { view -> view.isLenient = true view.componentFilter { id -> id !is ProjectComponentIdentifier } @@ -103,7 +103,7 @@ private fun ArtifactResolution.Variant.createVariantArtifactView(fragment: Kotli } } -private fun ArtifactResolution.PlatformFragment.createPlatformFragmentArtifactView(fragment: KotlinGradleFragment): ArtifactView { +private fun ArtifactResolution.PlatformFragment.createPlatformFragmentArtifactView(fragment: KpmGradleFragment): ArtifactView { val fragmentCompileDependencies = fragment.project.configurations.detachedConfiguration() fragmentCompileDependencies.dependencies.addAll( diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinProjectModelBuilder.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinProjectModelBuilder.kt index 94acde6888b..abdad3d6872 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinProjectModelBuilder.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinProjectModelBuilder.kt @@ -7,10 +7,10 @@ import org.jetbrains.kotlin.gradle.kpm.external.ExternalVariantApi import org.jetbrains.kotlin.gradle.kpm.idea.IdeaKotlinProjectModelBuilder.FragmentConstraint import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType.native import org.jetbrains.kotlin.gradle.plugin.getKotlinPluginVersion -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleFragment +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KpmGradleFragment import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinPm20ProjectExtension import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.containingVariants -import org.jetbrains.kotlin.project.model.KotlinModuleVariant +import org.jetbrains.kotlin.project.model.KpmVariant import java.io.File internal interface IdeaKotlinProjectModelBuildingContext { @@ -94,11 +94,11 @@ interface IdeaKotlinProjectModelBuilder { * Used for scoping [IdeaKotlinDependencyResolver], [IdeaKotlinDependencyTransformer] and [IdeaKotlinDependencyEffect] */ fun interface FragmentConstraint { - operator fun invoke(fragment: KotlinGradleFragment): Boolean + operator fun invoke(fragment: KpmGradleFragment): Boolean companion object { val unconstrained = FragmentConstraint { true } - val isVariant = FragmentConstraint { fragment -> fragment is KotlinModuleVariant } + val isVariant = FragmentConstraint { fragment -> fragment is KpmVariant } val isNative = FragmentConstraint { fragment -> fragment.containingVariants.run { any() && all { it.platformType == native } } } } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinRefinesDependencyResolver.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinRefinesDependencyResolver.kt index 298f032e2ef..ac79f8a62fd 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinRefinesDependencyResolver.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinRefinesDependencyResolver.kt @@ -5,14 +5,13 @@ package org.jetbrains.kotlin.gradle.kpm.idea -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleFragment -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.refinesClosure +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KpmGradleFragment internal object IdeaKotlinRefinesDependencyResolver : IdeaKotlinDependencyResolver { - override fun resolve(fragment: KotlinGradleFragment): Set = fragment.refinesClosure + override fun resolve(fragment: KpmGradleFragment): Set = fragment.refinesClosure .map { refinesDependencyFragment -> createRefinesDependency(refinesDependencyFragment) }.toSet() - private fun createRefinesDependency(fragment: KotlinGradleFragment): IdeaKotlinDependency { + private fun createRefinesDependency(fragment: KpmGradleFragment): IdeaKotlinDependency { return IdeaKotlinFragmentDependencyImpl( type = IdeaKotlinFragmentDependency.Type.Refines, coordinates = IdeaKotlinFragmentCoordinates(fragment) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinSinglePlatformStdlibCommonFilter.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinSinglePlatformStdlibCommonFilter.kt index 89064364d47..162f98d661f 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinSinglePlatformStdlibCommonFilter.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinSinglePlatformStdlibCommonFilter.kt @@ -5,7 +5,7 @@ package org.jetbrains.kotlin.gradle.kpm.idea -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleFragment +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KpmGradleFragment import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.containingVariants internal object IdeaKotlinSinglePlatformStdlibCommonFilter : IdeaKotlinDependencyTransformer { @@ -13,7 +13,7 @@ internal object IdeaKotlinSinglePlatformStdlibCommonFilter : IdeaKotlinDependenc private val stdlibCoordinatesModules = setOf("kotlin-stdlib-common", "kotlin-test-common", "kotlin-test-annotations-common") override fun transform( - fragment: KotlinGradleFragment, + fragment: KpmGradleFragment, dependencies: Set ): Set { val platforms = fragment.containingVariants.map { it.platformType }.toSet() diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinSourcesAndDocumentationResolver.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinSourcesAndDocumentationResolver.kt index 7e00ede1c32..2c73457a618 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinSourcesAndDocumentationResolver.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinSourcesAndDocumentationResolver.kt @@ -14,13 +14,13 @@ import org.gradle.api.component.Artifact import org.gradle.jvm.JvmLibrary import org.gradle.language.base.artifact.SourcesArtifact import org.gradle.language.java.artifact.JavadocArtifact -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleFragment -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleVariant +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KpmGradleFragment +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KpmGradleVariant import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.resolvableMetadataConfigurationName internal class IdeaKotlinSourcesAndDocumentationResolver : IdeaKotlinDependencyResolver { - override fun resolve(fragment: KotlinGradleFragment): Set { - if (fragment is KotlinGradleVariant) { + override fun resolve(fragment: KpmGradleFragment): Set { + if (fragment is KpmGradleVariant) { return resolve(fragment.project, fragment.compileDependenciesConfiguration) } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinUnusedSourcesAndDocumentationFilter.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinUnusedSourcesAndDocumentationFilter.kt index 372a9a6056c..a5e33b02b81 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinUnusedSourcesAndDocumentationFilter.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinUnusedSourcesAndDocumentationFilter.kt @@ -5,11 +5,11 @@ package org.jetbrains.kotlin.gradle.kpm.idea -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleFragment +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KpmGradleFragment internal object IdeaKotlinUnusedSourcesAndDocumentationFilter : IdeaKotlinDependencyTransformer { override fun transform( - fragment: KotlinGradleFragment, dependencies: Set + fragment: KpmGradleFragment, dependencies: Set ): Set { val sourcesAndDocumentationDependencies = dependencies .filterIsInstance() diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/CompilationDetails.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/CompilationDetails.kt index bf6c2ea9643..4d28e28c599 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/CompilationDetails.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/CompilationDetails.kt @@ -432,7 +432,7 @@ internal open class MetadataMappedCompilationDetails( } internal open class VariantMappedCompilationDetails( - open val variant: KotlinGradleVariantInternal, + open val variant: KpmGradleVariantInternal, override val target: KotlinTarget ) : CompilationDetails { @@ -469,7 +469,7 @@ internal open class VariantMappedCompilationDetails( } internal open class VariantMappedCompilationDetailsWithRuntime( - override val variant: KotlinGradleVariantWithRuntimeInternal, + override val variant: KpmGradleVariantWithRuntimeInternal, target: KotlinTarget ) : VariantMappedCompilationDetails(variant, target), CompilationDetailsWithRuntime { diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/DefaultKotlinDependencyHandler.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/DefaultKotlinDependencyHandler.kt index 7c9043a95ed..8d012b34b42 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/DefaultKotlinDependencyHandler.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/DefaultKotlinDependencyHandler.kt @@ -13,7 +13,7 @@ import org.gradle.api.artifacts.ProjectDependency import org.jetbrains.kotlin.gradle.plugin.HasKotlinDependencies import org.jetbrains.kotlin.gradle.plugin.KotlinDependencyHandler import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleModule +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KpmGradleModule import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.ComputedCapability import org.jetbrains.kotlin.gradle.targets.js.npm.NpmDependency import org.jetbrains.kotlin.gradle.targets.js.npm.directoryNpmDependency @@ -74,7 +74,7 @@ class DefaultKotlinDependencyHandler( dependencyNotation: Any ): Dependency? { val dependency = when (dependencyNotation) { - is KotlinGradleModule -> project.dependencies.create(dependencyNotation.project).apply { + is KpmGradleModule -> project.dependencies.create(dependencyNotation.project).apply { (this as ModuleDependency).capabilities { if (dependencyNotation.moduleClassifier != null) { it.requireCapability(ComputedCapability.fromModule(dependencyNotation)) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/GradleProjectModuleBuilder.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/GradleProjectModuleBuilder.kt index 02ec19e1306..bce223d28c3 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/GradleProjectModuleBuilder.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/GradleProjectModuleBuilder.kt @@ -26,33 +26,33 @@ import org.jetbrains.kotlin.gradle.utils.getOrPutRootProjectProperty import org.jetbrains.kotlin.project.model.* class ProjectStructureMetadataModuleBuilder { - private val modulesCache = mutableMapOf() + private val modulesCache = mutableMapOf() private fun buildModuleFromProjectStructureMetadata( component: ResolvedComponentResult, metadata: KotlinProjectStructureMetadata - ): KotlinModule { - val moduleData = BasicKotlinModule(component.toSingleModuleIdentifier()).apply { + ): KpmModule { + val moduleData = KpmBasicModule(component.toSingleModuleIdentifier()).apply { metadata.sourceSetNamesByVariantName.keys.forEach { variantName -> - fragments.add(BasicKotlinModuleVariant(this@apply, variantName)) + fragments.add(KpmBasicVariant(this@apply, variantName)) } - fun fragment(sourceSetName: String): BasicKotlinModuleFragment { + fun fragment(sourceSetName: String): KpmBasicFragment { if (fragments.none { it.fragmentName == sourceSetName }) - fragments.add(BasicKotlinModuleFragment(this@apply, sourceSetName)) + fragments.add(KpmBasicFragment(this@apply, sourceSetName)) return fragmentByName(sourceSetName) } metadata.sourceSetNamesByVariantName.forEach { (variantName, sourceSets) -> val variant = fragmentByName(variantName) sourceSets.forEach { sourceSetName -> - variant.directRefinesDependencies.add(fragment(sourceSetName)) + variant.declaredRefinesDependencies.add(fragment(sourceSetName)) } } metadata.sourceSetModuleDependencies.forEach { (sourceSetName, dependencies) -> val fragment = fragment(sourceSetName) dependencies.forEach { dependency -> fragment.declaredModuleDependencies.add( - KotlinModuleDependency( - MavenModuleIdentifier( + KpmModuleDependency( + KpmMavenModuleIdentifier( dependency.groupId.orEmpty(), dependency.moduleId, null /* TODO */ @@ -65,18 +65,18 @@ class ProjectStructureMetadataModuleBuilder { metadata.sourceSetsDependsOnRelation.forEach { (depending, dependencies) -> val dependingFragment = fragment(depending) dependencies.forEach { dependency -> - dependingFragment.directRefinesDependencies.add(fragment(dependency)) + dependingFragment.declaredRefinesDependencies.add(fragment(dependency)) } } } - return ExternalImportedKotlinModule( + return KpmExternalImportedModule( moduleData, metadata, moduleData.fragments.filterTo(mutableSetOf()) { it.fragmentName in metadata.hostSpecificSourceSets } ) } - fun getModule(component: ResolvedComponentResult, projectStructureMetadata: KotlinProjectStructureMetadata): KotlinModule { + fun getModule(component: ResolvedComponentResult, projectStructureMetadata: KotlinProjectStructureMetadata): KpmModule { val moduleId = component.toSingleModuleIdentifier() return modulesCache.getOrPut(moduleId) { buildModuleFromProjectStructureMetadata( @@ -123,7 +123,7 @@ private fun detectModules(targets: Iterable, sourceSets: Iterable< class GradleProjectModuleBuilder(private val addInferredSourceSetVisibilityAsExplicit: Boolean) { private fun getModulesFromPm20Project(project: Project) = project.kpmModules.toList() - fun buildModulesFromProject(project: Project): List { + fun buildModulesFromProject(project: Project): List { if (project.hasKpmModel) return getModulesFromPm20Project(project) @@ -144,19 +144,19 @@ class GradleProjectModuleBuilder(private val addInferredSourceSetVisibilityAsExp .flatMap { component -> (component as? KotlinVariant)?.usages.orEmpty() } }.groupBy { it.compilation } - val moduleByFragment = mutableMapOf() + val moduleByFragment = mutableMapOf() val result = moduleCompilationCluster.entries.map { (classifier, compilationsToInclude) -> val sourceSetsToInclude = compilationsToInclude.flatMapTo(mutableSetOf()) { it.allKotlinSourceSets } - val moduleIdentifier = LocalModuleIdentifier( + val moduleIdentifier = KpmLocalModuleIdentifier( project.currentBuildId().name, project.path, classifier.takeIf { it != KotlinCompilation.MAIN_COMPILATION_NAME } ) - BasicKotlinModule(moduleIdentifier).apply { - val variantToCompilation = mutableMapOf>() + KpmBasicModule(moduleIdentifier).apply { + val variantToCompilation = mutableMapOf>() compilationsToInclude.forEach { compilation -> // A compilation may be exposed as more than one variant, so we collect all of its names @@ -165,7 +165,7 @@ class GradleProjectModuleBuilder(private val addInferredSourceSetVisibilityAsExp ?: listOf(compilation.defaultSourceSetName) variantNames.forEach { variantName -> - val variant = BasicKotlinModuleVariant(this@apply, variantName, DefaultLanguageSettingsBuilder()) + val variant = KpmBasicVariant(this@apply, variantName, DefaultLanguageSettingsBuilder()) moduleByFragment[variant] = this@apply variantToCompilation[variant] = compilation fragments.add(variant) @@ -181,8 +181,8 @@ class GradleProjectModuleBuilder(private val addInferredSourceSetVisibilityAsExp } // Once all fragments are created, add dependencies between them sourceSetsToInclude.forEach { sourceSet -> - val existingVariant = fragments.filterIsInstance().find { it.fragmentName == sourceSet.name } - val fragment = existingVariant ?: BasicKotlinModuleFragment(this@apply, sourceSet.name, sourceSet.languageSettings).also { fragments.add(it) } + val existingVariant = fragments.filterIsInstance().find { it.fragmentName == sourceSet.name } + val fragment = existingVariant ?: KpmBasicFragment(this@apply, sourceSet.name, sourceSet.languageSettings).also { fragments.add(it) } moduleByFragment[fragment] = this@apply fragment.kotlinSourceRoots = sourceSet.kotlin.sourceDirectories.toList() @@ -197,7 +197,7 @@ class GradleProjectModuleBuilder(private val addInferredSourceSetVisibilityAsExp ?: variantToCompilation.getValue(fragment).defaultSourceSet sourceSet.dependsOn.forEach { dependency -> val dependencyFragment = fragmentByName(dependency.name) - fragment.directRefinesDependencies.add(dependencyFragment) + fragment.declaredRefinesDependencies.add(dependencyFragment) } } } @@ -210,7 +210,7 @@ class GradleProjectModuleBuilder(private val addInferredSourceSetVisibilityAsExp val variant = fragmentByName(compilation.defaultSourceSetName) compilation.associateWith.forEach { associate -> val associateVariant = fragmentByName(associate.defaultSourceSetName) - variant.declaredModuleDependencies.add(KotlinModuleDependency(associateVariant.containingModule.moduleIdentifier)) + variant.declaredModuleDependencies.add(KpmModuleDependency(associateVariant.containingModule.moduleIdentifier)) } } @@ -219,7 +219,7 @@ class GradleProjectModuleBuilder(private val addInferredSourceSetVisibilityAsExp val fragment = fragmentByName(sourceSet.name) getVisibleSourceSetsFromAssociateCompilations(project, sourceSet).forEach { dependency -> val dependencyFragment = fragmentByName(dependency.name) - fragment.declaredModuleDependencies.add(KotlinModuleDependency(dependencyFragment.containingModule.moduleIdentifier)) + fragment.declaredModuleDependencies.add(KpmModuleDependency(dependencyFragment.containingModule.moduleIdentifier)) } } } @@ -238,44 +238,44 @@ class GradleProjectModuleBuilder(private val addInferredSourceSetVisibilityAsExp internal fun Dependency.toModuleDependency( project: Project -): KotlinModuleDependency { - return KotlinModuleDependency( +): KpmModuleDependency { + return KpmModuleDependency( when (this) { is ProjectDependency -> - LocalModuleIdentifier( + KpmLocalModuleIdentifier( project.currentBuildId().name, dependencyProject.path, moduleClassifiersFromCapabilities(requestedCapabilities).single() // FIXME multiple capabilities ) is ModuleDependency -> - MavenModuleIdentifier( + KpmMavenModuleIdentifier( group.orEmpty(), name, moduleClassifiersFromCapabilities(requestedCapabilities).single() // FIXME multiple capabilities ) - else -> MavenModuleIdentifier(group.orEmpty(), name, null) + else -> KpmMavenModuleIdentifier(group.orEmpty(), name, null) } ) } -private fun BasicKotlinModule.fragmentByName(name: String) = +private fun KpmBasicModule.fragmentByName(name: String) = fragments.single { it.fragmentName == name } class CachingModuleVariantResolver(private val actualResolver: ModuleVariantResolver) : ModuleVariantResolver { - private val resultCacheByRequestingVariant: MutableMap> = mutableMapOf() + private val resultCacheByRequestingVariant: MutableMap> = mutableMapOf() - override fun getChosenVariant(requestingVariant: KotlinModuleVariant, dependencyModule: KotlinModule): VariantResolution { + override fun getChosenVariant(requestingVariant: org.jetbrains.kotlin.project.model.KpmVariant, dependencyModule: KpmModule): VariantResolution { val resultCache = resultCacheByRequestingVariant.getOrPut(requestingVariant) { mutableMapOf() } return resultCache.getOrPut(dependencyModule) { actualResolver.getChosenVariant(requestingVariant, dependencyModule) } } } class GradleModuleVariantResolver : ModuleVariantResolver { - override fun getChosenVariant(requestingVariant: KotlinModuleVariant, dependencyModule: KotlinModule): VariantResolution { + override fun getChosenVariant(requestingVariant: org.jetbrains.kotlin.project.model.KpmVariant, dependencyModule: KpmModule): VariantResolution { // TODO maybe improve this behavior? Currently it contradicts dependency resolution in that it may return a chosen variant for an // unrequested dependency. This workaround is needed for synthetic modules which were not produced from module metadata, so maybe // those modules should be marked somehow - if (dependencyModule is ExternalPlainKotlinModule) { + if (dependencyModule is KpmExternalPlainModule) { return VariantResolution.fromMatchingVariants( requestingVariant, dependencyModule, @@ -283,7 +283,7 @@ class GradleModuleVariantResolver : ModuleVariantResolver { ) } - if (requestingVariant !is KotlinGradleVariant) { + if (requestingVariant !is KpmGradleVariant) { return VariantResolution.Unknown(requestingVariant, dependencyModule) } @@ -300,7 +300,7 @@ class GradleModuleVariantResolver : ModuleVariantResolver { // FIXME check composite builds, it's likely that resolvedVariantProvider fails on them? val resolvedGradleVariantName = resolvedVariantProvider.getResolvedVariantName(dependencyModuleId, compileClasspath) val kotlinVariantName = when (dependencyModule) { - is KotlinGradleModule -> { + is KpmGradleModule -> { dependencyModule.variants.singleOrNull { resolvedGradleVariantName in it.gradleVariantNames }?.name ?: return VariantResolution.Unknown(requestingVariant, dependencyModule) } @@ -315,10 +315,10 @@ class GradleModuleVariantResolver : ModuleVariantResolver { VariantResolution.VariantMatch(requestingVariant, dependencyModule, resultVariant) } - private fun getCompileDependenciesConfigurationForVariant(project: Project, requestingVariant: KotlinModuleVariant): Configuration = + private fun getCompileDependenciesConfigurationForVariant(project: Project, requestingVariant: org.jetbrains.kotlin.project.model.KpmVariant): Configuration = when { project.hasKpmModel -> { - (requestingVariant as KotlinGradleVariant).compileDependenciesConfiguration + (requestingVariant as KpmGradleVariant).compileDependenciesConfiguration } else -> { val targets = diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt index cf3e3e05b22..c0ace49938a 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt @@ -80,10 +80,10 @@ class KotlinMultiplatformPlugin : Plugin { setupKpmModulesPublication(project) registerDefaultVariantFactories(project) with(project.kpmModules) { - create(KotlinGradleModule.MAIN_MODULE_NAME) { + create(KpmGradleModule.MAIN_MODULE_NAME) { it.makePublic() } - create(KotlinGradleModule.TEST_MODULE_NAME) + create(KpmGradleModule.TEST_MODULE_NAME) } } @@ -282,7 +282,7 @@ internal fun applyUserDefinedAttributes(target: AbstractKotlinTarget) { private fun applyUserDefinedAttributesWithKpm( target: AbstractKotlinTarget, ) { - fun copyAttributesToVariant(variant: KotlinGradleVariant, from: AttributeContainer) { + fun copyAttributesToVariant(variant: KpmGradleVariant, from: AttributeContainer) { variant.gradleVariantNames.forEach { configurationOrVariantName -> val configuration = variant.project.configurations.findByName(configurationOrVariantName) ?: return@forEach @@ -307,7 +307,7 @@ private fun applyUserDefinedAttributesWithKpm( } // Also handle the legacy-mapped variants, which are not accessible through the compilations in the loop above - project.kpmModules.getByName(KotlinGradleModule.MAIN_MODULE_NAME).variants.withType(LegacyMappedVariant::class.java).all { variant -> + project.kpmModules.getByName(KpmGradleModule.MAIN_MODULE_NAME).variants.withType(LegacyMappedVariant::class.java).all { variant -> val compilation = variant.compilation copyAttributesToVariant(variant, compilation.attributes) } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinProjectStructureMetadata.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinProjectStructureMetadata.kt index 908b03ccd34..b10fa8f89bc 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinProjectStructureMetadata.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinProjectStructureMetadata.kt @@ -14,9 +14,8 @@ import org.gradle.api.tasks.Input import org.gradle.api.tasks.Internal import org.gradle.api.tasks.Nested import org.jetbrains.kotlin.gradle.dsl.multiplatformExtensionOrNull -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleModule +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KpmGradleModule import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.hasKpmModel -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.withRefinesClosure import org.jetbrains.kotlin.gradle.plugin.sources.KotlinDependencyScope import org.jetbrains.kotlin.gradle.plugin.sources.sourceSetDependencyConfigurationByScope import org.jetbrains.kotlin.gradle.targets.metadata.dependsOnClosureWithInterCompilationDependencies @@ -191,7 +190,7 @@ internal fun buildKotlinProjectStructureMetadata(project: Project): KotlinProjec ) } -internal fun buildProjectStructureMetadata(module: KotlinGradleModule): KotlinProjectStructureMetadata { +internal fun buildProjectStructureMetadata(module: KpmGradleModule): KotlinProjectStructureMetadata { val kotlinVariantToGradleVariantNames = module.variants.associate { it.name to it.gradleVariantNames } fun expandVariantKeys(map: Map) = @@ -202,7 +201,7 @@ internal fun buildProjectStructureMetadata(module: KotlinGradleModule): KotlinPr val kotlinFragmentsPerKotlinVariant = module.variants.associate { variant -> variant.name to variant.withRefinesClosure.map { it.name }.toSet() } val fragmentRefinesRelation = - module.fragments.associate { it.name to it.directRefinesDependencies.map { it.fragmentName }.toSet() } + module.fragments.associate { it.name to it.declaredRefinesDependencies.map { it.fragmentName }.toSet() } // FIXME: support native implementation-as-api-dependencies // FIXME: support dependencies on auxiliary modules diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/ModuleIds.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/ModuleIds.kt index 665aa193230..7816cb20519 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/ModuleIds.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/ModuleIds.kt @@ -18,9 +18,9 @@ import org.jetbrains.kotlin.gradle.dsl.topLevelExtension import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.* import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.ComputedCapability import org.jetbrains.kotlin.gradle.utils.getValue -import org.jetbrains.kotlin.project.model.KotlinModuleIdentifier -import org.jetbrains.kotlin.project.model.LocalModuleIdentifier -import org.jetbrains.kotlin.project.model.MavenModuleIdentifier +import org.jetbrains.kotlin.project.model.KpmModuleIdentifier +import org.jetbrains.kotlin.project.model.KpmLocalModuleIdentifier +import org.jetbrains.kotlin.project.model.KpmMavenModuleIdentifier internal object ModuleIds { fun fromDependency(dependency: Dependency): ModuleDependencyIdentifier = when (dependency) { @@ -71,9 +71,9 @@ internal object ModuleIds { idOfRootModule(thisProject.project(projectPath)) // FIXME use capabilities to point to auxiliary modules - fun lossyFromModuleIdentifier(thisProject: Project, moduleIdentifier: KotlinModuleIdentifier): ModuleDependencyIdentifier { + fun lossyFromModuleIdentifier(thisProject: Project, moduleIdentifier: KpmModuleIdentifier): ModuleDependencyIdentifier { when (moduleIdentifier) { - is LocalModuleIdentifier -> { + is KpmLocalModuleIdentifier -> { check(moduleIdentifier.buildId == thisProject.currentBuildId().name) val dependencyProject = thisProject.project(moduleIdentifier.projectId) val topLevelExtension = dependencyProject.topLevelExtension @@ -101,7 +101,7 @@ internal object ModuleIds { ) return ChangingModuleDependencyIdentifier({ coordinatesProvider.group }, { coordinatesProvider.name }) } - is MavenModuleIdentifier -> { + is KpmMavenModuleIdentifier -> { return ModuleDependencyIdentifier(moduleIdentifier.group, moduleIdentifier.name) } else -> error("unexpected module identifier $moduleIdentifier") diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/MppDependencyProjectStructureMetadataExtractor.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/MppDependencyProjectStructureMetadataExtractor.kt index 64994f7cab5..c6e18b34425 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/MppDependencyProjectStructureMetadataExtractor.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/MppDependencyProjectStructureMetadataExtractor.kt @@ -12,7 +12,7 @@ import org.jetbrains.kotlin.gradle.dsl.topLevelExtensionOrNull import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinPm20ProjectExtension import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.hasKpmModel import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.kpmModules -import org.jetbrains.kotlin.project.model.KotlinModuleIdentifier +import org.jetbrains.kotlin.project.model.KpmModuleIdentifier import java.io.File import java.io.InputStream import java.util.zip.ZipFile @@ -25,7 +25,7 @@ sealed class MppDependencyProjectStructureMetadataExtractor { } internal class ProjectMppDependencyProjectStructureMetadataExtractor( - val moduleIdentifier: KotlinModuleIdentifier, + val moduleIdentifier: KpmModuleIdentifier, val dependencyProject: Project ) : MppDependencyProjectStructureMetadataExtractor() { diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/MppDependencyProjectStructureMetadataExtractorFactory.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/MppDependencyProjectStructureMetadataExtractorFactory.kt index e10ad1128a2..9772411d5d3 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/MppDependencyProjectStructureMetadataExtractorFactory.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/MppDependencyProjectStructureMetadataExtractorFactory.kt @@ -11,7 +11,7 @@ import org.gradle.api.artifacts.component.ProjectComponentIdentifier import org.gradle.api.artifacts.result.ResolvedComponentResult import org.gradle.api.artifacts.result.ResolvedDependencyResult import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.toSingleModuleIdentifier -import org.jetbrains.kotlin.project.model.KotlinModuleIdentifier +import org.jetbrains.kotlin.project.model.KpmModuleIdentifier internal fun MppDependencyProjectStructureMetadataExtractor.Factory.create( project: Project, @@ -36,7 +36,7 @@ internal fun MppDependencyProjectStructureMetadataExtractor.Factory.create( internal fun MppDependencyProjectStructureMetadataExtractor.Factory.create( project: Project, resolvedComponentResult: ResolvedComponentResult, - moduleIdentifier: KotlinModuleIdentifier, + moduleIdentifier: KpmModuleIdentifier, configuration: Configuration ): MppDependencyProjectStructureMetadataExtractor? { return create( @@ -51,7 +51,7 @@ internal fun MppDependencyProjectStructureMetadataExtractor.Factory.create( private fun MppDependencyProjectStructureMetadataExtractor.Factory.create( resolvedMppVariantsProvider: ResolvedMppVariantsProvider, - moduleIdentifier: KotlinModuleIdentifier, + moduleIdentifier: KpmModuleIdentifier, configuration: Configuration, resolveViaAvailableAt: Boolean, resolvedComponentResult: ResolvedComponentResult, diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/ProjectMetadataProviderImpl.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/ProjectMetadataProviderImpl.kt index 55461429da9..e90af95280f 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/ProjectMetadataProviderImpl.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/ProjectMetadataProviderImpl.kt @@ -15,18 +15,18 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.hasKpmModel import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.kpmModules import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.metadataCompilationRegistryByModuleId import org.jetbrains.kotlin.gradle.targets.native.internal.* -import org.jetbrains.kotlin.project.model.KotlinModuleIdentifier +import org.jetbrains.kotlin.project.model.KpmModuleIdentifier internal fun ProjectMetadataProvider( dependencyProject: Project, - moduleIdentifier: KotlinModuleIdentifier + moduleIdentifier: KpmModuleIdentifier ): ProjectMetadataProvider { return ProjectMetadataProviderImpl(dependencyProject, moduleIdentifier) } private class ProjectMetadataProviderImpl( private val dependencyProject: Project, - private val moduleIdentifier: KotlinModuleIdentifier + private val moduleIdentifier: KpmModuleIdentifier ) : ProjectMetadataProvider() { override fun getSourceSetCompiledMetadata(sourceSetName: String): FileCollection { val projectExtension = dependencyProject.topLevelExtensionOrNull diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/ResolvedMppVariantsProvider.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/ResolvedMppVariantsProvider.kt index 4f533d13e93..078f40c8906 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/ResolvedMppVariantsProvider.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/ResolvedMppVariantsProvider.kt @@ -18,7 +18,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.toModuleIdentifiers import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.toSingleModuleIdentifier import org.jetbrains.kotlin.gradle.plugin.usageByName import org.jetbrains.kotlin.gradle.utils.getOrPut -import org.jetbrains.kotlin.project.model.KotlinModuleIdentifier +import org.jetbrains.kotlin.project.model.KpmModuleIdentifier import java.io.File internal class ResolvedMppVariantsProvider private constructor(private val project: Project) { @@ -33,7 +33,7 @@ internal class ResolvedMppVariantsProvider private constructor(private val proje /** Gets the name of the variant that the module specified by the [moduleIdentifier] resolved to in the given [configuration]. * The [moduleIdentifier] may be either the root module or a platform-specific module, the result is the same for the two cases. */ - fun getResolvedVariantName(moduleIdentifier: KotlinModuleIdentifier, configuration: Configuration): String? = + fun getResolvedVariantName(moduleIdentifier: KpmModuleIdentifier, configuration: Configuration): String? = getEntryForModule(moduleIdentifier).run { if (configuration !in resolvedVariantsByConfiguration) { resolveConfigurationAndSaveVariants(configuration, artifactResolutionMode = ArtifactResolutionMode.NONE) @@ -46,7 +46,7 @@ internal class ResolvedMppVariantsProvider private constructor(private val proje * module of a multiplatform project, not one of its platform-specific modules, as seen in the given [configuration]. * If the [configuration] requests platform artifacts and not the common code metadata, then this function will resolve its * dependencies to metadata separately. */ - fun getHostSpecificMetadataArtifactByRootModule(rootModuleIdentifier: KotlinModuleIdentifier, configuration: Configuration): File? { + fun getHostSpecificMetadataArtifactByRootModule(rootModuleIdentifier: KpmModuleIdentifier, configuration: Configuration): File? { val rootModuleEntry = getEntryForModule(rootModuleIdentifier) val platformModuleEntry = rootModuleEntry.run { @@ -68,7 +68,7 @@ internal class ResolvedMppVariantsProvider private constructor(private val proje } /** Gets the artifact of a particular MPP platform-specific [moduleIdentifier] as resolved in the [configuration]. */ - fun getResolvedArtifactByPlatformModule(moduleIdentifier: KotlinModuleIdentifier, configuration: Configuration): File? = + fun getResolvedArtifactByPlatformModule(moduleIdentifier: KpmModuleIdentifier, configuration: Configuration): File? = getEntryForModule(moduleIdentifier).run { if (configuration !in resolvedArtifactByConfiguration) { resolveConfigurationAndSaveVariants(configuration, artifactResolutionMode = ArtifactResolutionMode.NORMAL) @@ -77,10 +77,10 @@ internal class ResolvedMppVariantsProvider private constructor(private val proje resolvedArtifactByConfiguration.getOrPut(configuration) { null } } - private fun getEntryForModule(moduleIdentifier: KotlinModuleIdentifier) = + private fun getEntryForModule(moduleIdentifier: KpmModuleIdentifier) = entriesCache.getOrPut(moduleIdentifier, { ModuleEntry(moduleIdentifier) }) - private val entriesCache: MutableMap = mutableMapOf() + private val entriesCache: MutableMap = mutableMapOf() private val mppComponentsByConfiguration: MutableMap> = mutableMapOf() @@ -211,12 +211,12 @@ internal class ResolvedMppVariantsProvider private constructor(private val proje */ private class ModuleEntry( @Suppress("unused") // simplify debugging - val moduleIdentifier: KotlinModuleIdentifier + val moduleIdentifier: KpmModuleIdentifier ) { - val dependenciesByConfiguration: MutableMap> = HashMap() + val dependenciesByConfiguration: MutableMap> = HashMap() val resolvedVariantsByConfiguration: MutableMap?> = HashMap() val resolvedArtifactByConfiguration: MutableMap = HashMap() val resolvedMetadataArtifactByConfiguration: MutableMap = HashMap() val chosenPlatformModuleByConfiguration: MutableMap = HashMap() } -} \ No newline at end of file +} diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/DefaultKotlinFragmentAttributes.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/DefaultKotlinFragmentAttributes.kt index 6ca0a1c8684..0f55f39752b 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/DefaultKotlinFragmentAttributes.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/DefaultKotlinFragmentAttributes.kt @@ -20,7 +20,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinUsages.producerRuntimeUsage import org.jetbrains.kotlin.gradle.plugin.usageByName import org.jetbrains.kotlin.gradle.utils.isGradleVersionAtLeast -val KotlinFragmentPlatformAttributes = FragmentAttributes { +val KotlinFragmentPlatformAttributes = FragmentAttributes { if (isGradleVersionAtLeast(7, 0) && fragment.platformType == KotlinPlatformType.jvm) { namedAttribute(TARGET_JVM_ENVIRONMENT_ATTRIBUTE, TargetJvmEnvironment.STANDARD_JVM) } @@ -28,26 +28,26 @@ val KotlinFragmentPlatformAttributes = FragmentAttributes { attribute(KotlinPlatformType.attribute, fragment.platformType) } -val KotlinFragmentConsumerApiUsageAttribute = FragmentAttributes { +val KotlinFragmentConsumerApiUsageAttribute = FragmentAttributes { attribute(USAGE_ATTRIBUTE, consumerApiUsage(project, fragment.platformType)) } -val KotlinFragmentProducerApiUsageAttribute = FragmentAttributes { +val KotlinFragmentProducerApiUsageAttribute = FragmentAttributes { attribute(USAGE_ATTRIBUTE, producerApiUsage(fragment.project, fragment.platformType)) } -val KotlinFragmentConsumerRuntimeUsageAttribute = FragmentAttributes { +val KotlinFragmentConsumerRuntimeUsageAttribute = FragmentAttributes { attribute(USAGE_ATTRIBUTE, consumerRuntimeUsage(fragment.project, fragment.platformType)) } -val KotlinFragmentProducerRuntimeUsageAttribute = FragmentAttributes { +val KotlinFragmentProducerRuntimeUsageAttribute = FragmentAttributes { attribute(USAGE_ATTRIBUTE, producerRuntimeUsage(fragment.project, fragment.platformType)) } -val KotlinFragmentMetadataUsageAttribute = FragmentAttributes { +val KotlinFragmentMetadataUsageAttribute = FragmentAttributes { attribute(USAGE_ATTRIBUTE, fragment.project.usageByName(KotlinUsages.KOTLIN_METADATA)) } -val KotlinFragmentKonanTargetAttribute = FragmentAttributes { +val KotlinFragmentKonanTargetAttribute = FragmentAttributes { attributes.attribute(KotlinNativeTarget.konanTargetAttribute, fragment.konanTarget.name) } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/DependencyGraphResolver.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/DependencyGraphResolver.kt index 12c9272ce19..b34778ca4a0 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/DependencyGraphResolver.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/DependencyGraphResolver.kt @@ -15,12 +15,12 @@ import org.jetbrains.kotlin.gradle.plugin.sources.KotlinDependencyScope import org.jetbrains.kotlin.project.model.* internal fun resolvableMetadataConfiguration( - module: KotlinGradleModule + module: KpmGradleModule ) = module.project.configurations.getByName(module.resolvableMetadataConfigurationName) -internal fun configurationToResolveMetadataDependencies(project: Project, requestingModule: KotlinModule): Configuration = +internal fun configurationToResolveMetadataDependencies(project: Project, requestingModule: KpmModule): Configuration = when { - project.hasKpmModel -> resolvableMetadataConfiguration(requestingModule as KotlinGradleModule) + project.hasKpmModel -> resolvableMetadataConfiguration(requestingModule as KpmGradleModule) else -> resolvableMetadataConfiguration( project, project.kotlinExtension.sourceSets, // take dependencies from all source sets; TODO introduce consistency scopes? @@ -29,40 +29,40 @@ internal fun configurationToResolveMetadataDependencies(project: Project, reques } -class GradleKotlinDependencyGraphResolver( - private val moduleResolver: ModuleDependencyResolver -) : KotlinDependencyGraphResolver { +class KpmGradleDependencyGraphResolver( + private val moduleResolver: KpmModuleDependencyResolver +) : KpmDependencyGraphResolver { - private fun configurationToResolve(requestingModule: KotlinGradleModule): Configuration = + private fun configurationToResolve(requestingModule: KpmGradleModule): Configuration = configurationToResolveMetadataDependencies(requestingModule.project, requestingModule) - override fun resolveDependencyGraph(requestingModule: KotlinModule): DependencyGraphResolution { - if (requestingModule !is KotlinGradleModule) - return DependencyGraphResolution.Unknown(requestingModule) + override fun resolveDependencyGraph(requestingModule: KpmModule): KpmDependencyGraphResolution { + if (requestingModule !is KpmGradleModule) + return KpmDependencyGraphResolution.Unknown(requestingModule) return resolveAsGraph(requestingModule) } - private fun resolveAsGraph(requestingModule: KotlinGradleModule): GradleDependencyGraph { - val nodeByModuleId = mutableMapOf() + private fun resolveAsGraph(requestingModule: KpmGradleModule): KpmGradleDependencyGraph { + val nodeByModuleId = mutableMapOf() - fun getKotlinModuleFromComponentResult(component: ResolvedComponentResult): KotlinModule = + fun getKotlinModuleFromComponentResult(component: ResolvedComponentResult): KpmModule = moduleResolver.resolveDependency(requestingModule, component.toModuleDependency()) ?: buildSyntheticPlainModule( component, component.variants.singleOrNull()?.displayName ?: "default", ) - fun nodeFromModule(componentResult: ResolvedComponentResult, kotlinModule: KotlinModule): GradleDependencyGraphNode { - val id = kotlinModule.moduleIdentifier + fun nodeFromModule(componentResult: ResolvedComponentResult, kpmModule: KpmModule): GradleDependencyGraphNode { + val id = kpmModule.moduleIdentifier return nodeByModuleId.getOrPut(id) { val metadataSourceComponent = - (kotlinModule as? ExternalImportedKotlinModule) + (kpmModule as? KpmExternalImportedModule) ?.takeIf { it.hasLegacyMetadataModule } ?.let { (componentResult.dependencies.singleOrNull() as? ResolvedDependencyResult)?.selected } ?: componentResult val dependenciesRequestedByModule = - kotlinModule.fragments.flatMap { fragment -> fragment.declaredModuleDependencies.map { it.moduleIdentifier } }.toSet() + kpmModule.fragments.flatMap { fragment -> fragment.declaredModuleDependencies.map { it.moduleIdentifier } }.toSet() val resolvedComponentDependencies = metadataSourceComponent.dependencies .filterIsInstance() @@ -72,7 +72,7 @@ class GradleKotlinDependencyGraphResolver( .flatMap { dependency -> dependency.requested.toModuleIdentifiers().map { id -> id to dependency.selected } } .toMap() - val fragmentDependencies = kotlinModule.fragments.associateWith { it.declaredModuleDependencies } + val fragmentDependencies = kpmModule.fragments.associateWith { it.declaredModuleDependencies } val nodeDependenciesMap = fragmentDependencies.mapValues { (_, deps) -> deps.mapNotNull { resolvedComponentDependencies[it.moduleIdentifier] }.map { @@ -82,7 +82,7 @@ class GradleKotlinDependencyGraphResolver( } GradleDependencyGraphNode( - kotlinModule, + kpmModule, componentResult, metadataSourceComponent, nodeDependenciesMap @@ -90,7 +90,7 @@ class GradleKotlinDependencyGraphResolver( } } - return GradleDependencyGraph( + return KpmGradleDependencyGraph( requestingModule, nodeFromModule(configurationToResolve(requestingModule).incoming.resolutionResult.root, requestingModule) ) @@ -98,16 +98,16 @@ class GradleKotlinDependencyGraphResolver( } class GradleDependencyGraphNode( - override val module: KotlinModule, + override val module: KpmModule, val selectedComponent: ResolvedComponentResult, /** If the Kotlin module description was provided by a different component, such as with legacy publishing layout using *-metadata * modules, then this property points to the other component. */ val metadataSourceComponent: ResolvedComponentResult?, - override val dependenciesByFragment: Map> -) : DependencyGraphNode(module, dependenciesByFragment) + override val dependenciesByFragment: Map> +) : KpmDependencyGraphNode(module, dependenciesByFragment) -class GradleDependencyGraph( - override val requestingModule: KotlinGradleModule, +class KpmGradleDependencyGraph( + override val requestingModule: KpmGradleModule, override val root: GradleDependencyGraphNode -) : DependencyGraphResolution.DependencyGraph(requestingModule, root) +) : KpmDependencyGraphResolution.KpmDependencyGraph(requestingModule, root) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/DependencyResolution.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/DependencyResolution.kt index dda11157a96..60e3d1c8fb0 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/DependencyResolution.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/DependencyResolution.kt @@ -16,38 +16,39 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.* import org.jetbrains.kotlin.gradle.plugin.sources.DefaultLanguageSettingsBuilder import org.jetbrains.kotlin.gradle.utils.getOrPutRootProjectProperty import org.jetbrains.kotlin.project.model.* +import org.jetbrains.kotlin.project.model.KpmVariant import java.util.* -class CachingModuleDependencyResolver(private val actualResolver: ModuleDependencyResolver) : ModuleDependencyResolver { - private val cacheByRequestingModule = WeakHashMap>() +class KpmCachingModuleDependencyResolver(private val actualResolver: KpmModuleDependencyResolver) : KpmModuleDependencyResolver { + private val cacheByRequestingModule = WeakHashMap>() - private fun cacheForRequestingModule(requestingModule: KotlinModule) = + private fun cacheForRequestingModule(requestingModule: KpmModule) = cacheByRequestingModule.getOrPut(requestingModule) { mutableMapOf() } - override fun resolveDependency(requestingModule: KotlinModule, moduleDependency: KotlinModuleDependency): KotlinModule? = + override fun resolveDependency(requestingModule: KpmModule, moduleDependency: KpmModuleDependency): KpmModule? = cacheForRequestingModule(requestingModule).getOrPut(moduleDependency) { actualResolver.resolveDependency(requestingModule, moduleDependency) } } open class GradleComponentResultCachingResolver { - private val cachedResultsByRequestingModule = mutableMapOf>() + private val cachedResultsByRequestingModule = mutableMapOf>() - protected open fun configurationToResolve(requestingModule: KotlinGradleModule): Configuration = + protected open fun configurationToResolve(requestingModule: KpmGradleModule): Configuration = configurationToResolveMetadataDependencies(requestingModule.project, requestingModule) - protected open fun resolveDependencies(module: KotlinGradleModule): Map { + protected open fun resolveDependencies(module: KpmGradleModule): Map { val allComponents = configurationToResolve(module).incoming.resolutionResult.allComponents // FIXME handle multi-component results return allComponents.flatMap { component -> component.toModuleIdentifiers().map { it to component } }.toMap() } - private fun getResultsForModule(module: KotlinGradleModule): Map = + private fun getResultsForModule(module: KpmGradleModule): Map = cachedResultsByRequestingModule.getOrPut(module) { resolveDependencies(module) } fun resolveModuleDependencyAsComponentResult( - requestingModule: KotlinGradleModule, - moduleDependency: KotlinModuleDependency + requestingModule: KpmGradleModule, + moduleDependency: KpmModuleDependency ): ResolvedComponentResult? = getResultsForModule(requestingModule)[moduleDependency.moduleIdentifier] @@ -61,14 +62,14 @@ open class GradleComponentResultCachingResolver { } } -class GradleModuleDependencyResolver( +class KpmGradleModuleDependencyResolver( private val gradleComponentResultResolver: GradleComponentResultCachingResolver, private val projectStructureMetadataModuleBuilder: ProjectStructureMetadataModuleBuilder, private val projectModuleBuilder: GradleProjectModuleBuilder -) : ModuleDependencyResolver { +) : KpmModuleDependencyResolver { - override fun resolveDependency(requestingModule: KotlinModule, moduleDependency: KotlinModuleDependency): KotlinModule? { - require(requestingModule is KotlinGradleModule) + override fun resolveDependency(requestingModule: KpmModule, moduleDependency: KpmModuleDependency): KpmModule? { + require(requestingModule is KpmGradleModule) val project = requestingModule.project val component = gradleComponentResultResolver.resolveModuleDependencyAsComponentResult(requestingModule, moduleDependency) @@ -97,14 +98,14 @@ class GradleModuleDependencyResolver( } companion object { - fun getForCurrentBuild(project: Project): ModuleDependencyResolver { + fun getForCurrentBuild(project: Project): KpmModuleDependencyResolver { val extraPropertyName = "org.jetbrains.kotlin.dependencyResolution.moduleResolver.${project.getKotlinPluginVersion()}" return project.getOrPutRootProjectProperty(extraPropertyName) { val componentResultResolver = GradleComponentResultCachingResolver.getForCurrentBuild(project) val metadataModuleBuilder = ProjectStructureMetadataModuleBuilder() val projectModuleBuilder = GradleProjectModuleBuilder(true) - CachingModuleDependencyResolver( - GradleModuleDependencyResolver(componentResultResolver, metadataModuleBuilder, projectModuleBuilder) + KpmCachingModuleDependencyResolver( + KpmGradleModuleDependencyResolver(componentResultResolver, metadataModuleBuilder, projectModuleBuilder) ) } } @@ -116,10 +117,10 @@ class GradleModuleDependencyResolver( internal fun buildSyntheticPlainModule( resolvedComponentResult: ResolvedComponentResult, singleVariantName: String, -): ExternalPlainKotlinModule { +): KpmExternalPlainModule { val moduleDependency = resolvedComponentResult.toModuleDependency() - return ExternalPlainKotlinModule(BasicKotlinModule(moduleDependency.moduleIdentifier).apply { - BasicKotlinModuleVariant(this@apply, singleVariantName, DefaultLanguageSettingsBuilder()).apply { + return KpmExternalPlainModule(KpmBasicModule(moduleDependency.moduleIdentifier).apply { + KpmBasicVariant(this@apply, singleVariantName, DefaultLanguageSettingsBuilder()).apply { fragments.add(this) this.declaredModuleDependencies.addAll( resolvedComponentResult.dependencies @@ -130,47 +131,47 @@ internal fun buildSyntheticPlainModule( }) } -internal class ExternalPlainKotlinModule(private val moduleData: BasicKotlinModule) : KotlinModule by moduleData { +internal class KpmExternalPlainModule(private val moduleData: KpmBasicModule) : KpmModule by moduleData { override fun toString(): String = "external plain $moduleData" - val singleVariant: KotlinModuleVariant + val singleVariant: KpmVariant get() = moduleData.variants.singleOrNull() ?: error("synthetic $moduleData was expected to have a single variant, got: ${moduleData.variants}") } -internal class ExternalImportedKotlinModule( - private val moduleData: BasicKotlinModule, +internal class KpmExternalImportedModule( + private val moduleData: KpmBasicModule, val projectStructureMetadata: KotlinProjectStructureMetadata, - val hostSpecificFragments: Set -) : KotlinModule by moduleData { + val hostSpecificFragments: Set +) : KpmModule by moduleData { val hasLegacyMetadataModule = !projectStructureMetadata.isPublishedAsRoot override fun toString(): String = "imported $moduleData" } -private fun ModuleComponentIdentifier.toSingleModuleIdentifier(classifier: String? = null): MavenModuleIdentifier = - MavenModuleIdentifier(moduleIdentifier.group, moduleIdentifier.name, classifier) +private fun ModuleComponentIdentifier.toSingleModuleIdentifier(classifier: String? = null): KpmMavenModuleIdentifier = + KpmMavenModuleIdentifier(moduleIdentifier.group, moduleIdentifier.name, classifier) -internal fun ComponentIdentifier.matchesModule(module: KotlinModule): Boolean = +internal fun ComponentIdentifier.matchesModule(module: KpmModule): Boolean = matchesModuleIdentifier(module.moduleIdentifier) -internal fun ResolvedComponentResult.toModuleIdentifiers(): List { +internal fun ResolvedComponentResult.toModuleIdentifiers(): List { val classifiers = moduleClassifiersFromCapabilities(variants.flatMap { it.capabilities }) return classifiers.map { moduleClassifier -> toModuleIdentifier(moduleClassifier) } } // FIXME this mapping doesn't have enough information to choose auxiliary modules -internal fun ResolvedComponentResult.toSingleModuleIdentifier(): KotlinModuleIdentifier { +internal fun ResolvedComponentResult.toSingleModuleIdentifier(): KpmModuleIdentifier { val classifiers = moduleClassifiersFromCapabilities(variants.flatMap { it.capabilities }) val moduleClassifier = classifiers.single() // FIXME handle multiple capabilities return toModuleIdentifier(moduleClassifier) } -private fun ResolvedComponentResult.toModuleIdentifier(moduleClassifier: String?): KotlinModuleIdentifier { +private fun ResolvedComponentResult.toModuleIdentifier(moduleClassifier: String?): KpmModuleIdentifier { return when (val id = id) { - is ProjectComponentIdentifier -> LocalModuleIdentifier(id.build.name, id.projectPath, moduleClassifier) + is ProjectComponentIdentifier -> KpmLocalModuleIdentifier(id.build.name, id.projectPath, moduleClassifier) is ModuleComponentIdentifier -> id.toSingleModuleIdentifier() - else -> MavenModuleIdentifier(moduleVersion?.group.orEmpty(), moduleVersion?.name.orEmpty(), moduleClassifier) + else -> KpmMavenModuleIdentifier(moduleVersion?.group.orEmpty(), moduleVersion?.name.orEmpty(), moduleClassifier) } } @@ -179,31 +180,31 @@ internal fun moduleClassifiersFromCapabilities(capabilities: Iterable { +internal fun ComponentSelector.toModuleIdentifiers(): Iterable { val moduleClassifiers = moduleClassifiersFromCapabilities(requestedCapabilities) return when (this) { - is ProjectComponentSelector -> moduleClassifiers.map { LocalModuleIdentifier(buildName, projectPath, it) } - is ModuleComponentSelector -> moduleClassifiers.map { MavenModuleIdentifier(moduleIdentifier.group, moduleIdentifier.name, it) } + is ProjectComponentSelector -> moduleClassifiers.map { KpmLocalModuleIdentifier(buildName, projectPath, it) } + is ModuleComponentSelector -> moduleClassifiers.map { KpmMavenModuleIdentifier(moduleIdentifier.group, moduleIdentifier.name, it) } else -> error("unexpected component selector") } } -internal fun ResolvedComponentResult.toModuleDependency(): KotlinModuleDependency = KotlinModuleDependency(toSingleModuleIdentifier()) -internal fun ComponentSelector.toModuleDependency(): KotlinModuleDependency { +internal fun ResolvedComponentResult.toModuleDependency(): KpmModuleDependency = KpmModuleDependency(toSingleModuleIdentifier()) +internal fun ComponentSelector.toModuleDependency(): KpmModuleDependency { val moduleId = toModuleIdentifiers().single() // FIXME handle multiple - return KotlinModuleDependency(moduleId) + return KpmModuleDependency(moduleId) } -internal fun ComponentIdentifier.matchesModuleDependency(moduleDependency: KotlinModuleDependency) = +internal fun ComponentIdentifier.matchesModuleDependency(moduleDependency: KpmModuleDependency) = matchesModuleIdentifier(moduleDependency.moduleIdentifier) -internal fun ComponentIdentifier.matchesModuleIdentifier(id: KotlinModuleIdentifier): Boolean = +internal fun ComponentIdentifier.matchesModuleIdentifier(id: KpmModuleIdentifier): Boolean = when (id) { - is LocalModuleIdentifier -> { + is KpmLocalModuleIdentifier -> { val projectId = this as? ProjectComponentIdentifier projectId?.build?.name == id.buildId && projectId.projectPath == id.projectId } - is MavenModuleIdentifier -> { + is KpmMavenModuleIdentifier -> { val componentId = this as? ModuleComponentIdentifier componentId?.toSingleModuleIdentifier() == id } @@ -214,7 +215,7 @@ private fun getProjectStructureMetadata( project: Project, module: ResolvedComponentResult, configuration: Configuration, - moduleIdentifier: KotlinModuleIdentifier? = null + moduleIdentifier: KpmModuleIdentifier? = null ): KotlinProjectStructureMetadata? { val extractor = if (moduleIdentifier != null) MppDependencyProjectStructureMetadataExtractor.create(project, module, moduleIdentifier, configuration) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/FragmentGranularMetadataResolver.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/FragmentGranularMetadataResolver.kt index 9f8a0ce74cd..614aca81e61 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/FragmentGranularMetadataResolver.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/FragmentGranularMetadataResolver.kt @@ -15,7 +15,7 @@ import java.io.File import java.util.* internal class FragmentGranularMetadataResolver( - private val requestingFragment: KotlinGradleFragment, + private val requestingFragment: KpmGradleFragment, private val refinesParentResolvers: Lazy> ) { val resolutions: Iterable by lazy { @@ -25,14 +25,14 @@ internal class FragmentGranularMetadataResolver( private val project: Project get() = requestingFragment.containingModule.project - private val parentResultsByModuleIdentifier: Map> by lazy { + private val parentResultsByModuleIdentifier: Map> by lazy { refinesParentResolvers.value.flatMap { it.resolutions }.groupBy { it.dependency.toSingleModuleIdentifier() } } - private val moduleResolver = GradleModuleDependencyResolver.getForCurrentBuild(project) + private val moduleResolver = KpmGradleModuleDependencyResolver.getForCurrentBuild(project) private val variantResolver = GradleModuleVariantResolver.getForCurrentBuild(project) private val fragmentResolver = DefaultModuleFragmentsResolver(variantResolver) - private val dependencyGraphResolver = GradleKotlinDependencyGraphResolver(moduleResolver) + private val dependencyGraphResolver = KpmGradleDependencyGraphResolver(moduleResolver) private fun doResolveMetadataDependencies(): Iterable { val configurationToResolve = configurationToResolveMetadataDependencies(project, requestingFragment.containingModule) @@ -44,10 +44,10 @@ internal class FragmentGranularMetadataResolver( val dependencyGraph = dependencyGraphResolver.resolveDependencyGraph(requestingFragment.containingModule) - if (dependencyGraph is DependencyGraphResolution.Unknown) + if (dependencyGraph is KpmDependencyGraphResolution.Unknown) error("unexpected failure in dependency graph resolution for $requestingFragment in $project") - dependencyGraph as GradleDependencyGraph // refactor the type hierarchy to avoid this downcast? FIXME? + dependencyGraph as KpmGradleDependencyGraph // refactor the type hierarchy to avoid this downcast? FIXME? val fragmentsToInclude = requestingFragment.withRefinesClosure val requestedDependencies = dependencyGraph.root.dependenciesByFragment.filterKeys { it in fragmentsToInclude }.values.flatten() @@ -74,7 +74,7 @@ internal class FragmentGranularMetadataResolver( val resolvedComponentResult = dependencyNode.selectedComponent val isResolvedAsProject = resolvedComponentResult.toProjectOrNull(project) val result = when (dependencyModule) { - is ExternalPlainKotlinModule -> { + is KpmExternalPlainModule -> { MetadataDependencyResolution.KeepOriginalDependency(resolvedComponentResult, isResolvedAsProject) } else -> run { @@ -96,7 +96,7 @@ internal class FragmentGranularMetadataResolver( "the presence of a proper Kotlin Module" ) - val projectStructureMetadata = (dependencyModule as? ExternalImportedKotlinModule)?.projectStructureMetadata + val projectStructureMetadata = (dependencyModule as? KpmExternalImportedModule)?.projectStructureMetadata ?: checkNotNull(projectStructureMetadataExtractor.getProjectStructureMetadata()) @@ -111,7 +111,7 @@ internal class FragmentGranularMetadataResolver( projectStructureMetadata = projectStructureMetadata, primaryArtifactFile = projectStructureMetadataExtractor.primaryArtifactFile, hostSpecificArtifactsBySourceSet = if ( - dependencyModule is ExternalImportedKotlinModule && chosenFragments != null + dependencyModule is KpmExternalImportedModule && chosenFragments != null ) resolveHostSpecificMetadataArtifacts(dependencyModule, chosenFragments) else emptyMap(), ).asMetadataProvider() } @@ -140,14 +140,14 @@ internal class FragmentGranularMetadataResolver( return results } - private fun fragmentsNamesVisibleByParents(kotlinModuleIdentifier: KotlinModuleIdentifier): MutableSet { + private fun fragmentsNamesVisibleByParents(kotlinModuleIdentifier: KpmModuleIdentifier): MutableSet { val parentResolutionsForDependency = parentResultsByModuleIdentifier[kotlinModuleIdentifier].orEmpty() return parentResolutionsForDependency.filterIsInstance() .flatMapTo(mutableSetOf()) { it.allVisibleSourceSetNames } } private fun resolveHostSpecificMetadataArtifacts( - dependencyModule: ExternalImportedKotlinModule, + dependencyModule: KpmExternalImportedModule, chosenFragments: FragmentResolution.ChosenFragments, ): Map { val visibleFragments = chosenFragments.visibleFragments @@ -161,7 +161,7 @@ internal class FragmentGranularMetadataResolver( // resolve the dependencies of that variant getting the host-specific metadata artifact relevantVariantResolution?.let { resolution -> val configurationResolvingPlatformVariant = - (resolution.requestingVariant as KotlinGradleVariant).compileDependenciesConfiguration + (resolution.requestingVariant as KpmGradleVariant).compileDependenciesConfiguration val hostSpecificArtifact = ResolvedMppVariantsProvider.get(project) .getHostSpecificMetadataArtifactByRootModule( dependencyModule.moduleIdentifier, diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/FragmentGranularMetadataResolverFactory.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/FragmentGranularMetadataResolverFactory.kt index 9b8adc06642..0c949cd259e 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/FragmentGranularMetadataResolverFactory.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/FragmentGranularMetadataResolverFactory.kt @@ -6,9 +6,9 @@ package org.jetbrains.kotlin.gradle.plugin.mpp.pm20 internal class FragmentGranularMetadataResolverFactory { - private val resolvers = mutableMapOf() + private val resolvers = mutableMapOf() - fun getOrCreate(fragment: KotlinGradleFragment): FragmentGranularMetadataResolver = resolvers.getOrPut(fragment) { + fun getOrCreate(fragment: KpmGradleFragment): FragmentGranularMetadataResolver = resolvers.getOrPut(fragment) { FragmentGranularMetadataResolver(fragment, lazy { fragment.refinesClosure.map { refinesFragment -> getOrCreate(refinesFragment) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/FragmentSourcesProvider.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/FragmentSourcesProvider.kt index 79012906e89..53c07034426 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/FragmentSourcesProvider.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/FragmentSourcesProvider.kt @@ -13,30 +13,30 @@ import java.io.File typealias SourceRoots = Iterable typealias SourceRootsProvider = Provider typealias MultipleSourceRootsProvider = Provider> -typealias SourceRootsProvidersByFragment = Map +typealias SourceRootsProvidersByFragment = Map /** Note: the API is [Provider]-based rather than FileCollection-based because FileCollection API erases the internal structure of the * file sets, and this internal structure is currently needed for correctly inferring Java source roots from the sources added to the * JVM compilations (it is important to pass sources in SourceDirectorySets) */ open class FragmentSourcesProvider { protected open fun getSourcesFromFragmentsAsMap( - fragments: Iterable + fragments: Iterable ): SourceRootsProvidersByFragment = fragments.associateWith { it.project.provider { it.kotlinSourceRoots } } - open fun getFragmentOwnSources(fragment: KotlinGradleFragment): SourceRootsProvider = + open fun getFragmentOwnSources(fragment: KpmGradleFragment): SourceRootsProvider = getSourcesFromFragmentsAsMap(listOf(fragment)).values.single() - open fun getAllFragmentSourcesAsMap(module: KotlinGradleModule): SourceRootsProvidersByFragment = + open fun getAllFragmentSourcesAsMap(module: KpmGradleModule): SourceRootsProvidersByFragment = getSourcesFromFragmentsAsMap(module.fragments) - open fun getSourcesFromRefinesClosureAsMap(fragment: KotlinGradleFragment): SourceRootsProvidersByFragment = + open fun getSourcesFromRefinesClosureAsMap(fragment: KpmGradleFragment): SourceRootsProvidersByFragment = getSourcesFromFragmentsAsMap(fragment.withRefinesClosure) - open fun getSourcesFromRefinesClosure(fragment: KotlinGradleFragment): MultipleSourceRootsProvider = + open fun getSourcesFromRefinesClosure(fragment: KpmGradleFragment): MultipleSourceRootsProvider = fragment.project.provider { getSourcesFromRefinesClosureAsMap(fragment).values } - open fun getCommonSourcesFromRefinesClosure(fragment: KotlinGradleFragment): MultipleSourceRootsProvider { + open fun getCommonSourcesFromRefinesClosure(fragment: KpmGradleFragment): MultipleSourceRootsProvider { val containingModule = fragment.containingModule val project = containingModule.project getSourcesFromRefinesClosureAsMap(fragment) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/GradleKpmCompilerPlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/GradleKpmCompilerPlugin.kt index e51c89a19c5..f62fd56df54 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/GradleKpmCompilerPlugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/GradleKpmCompilerPlugin.kt @@ -18,17 +18,17 @@ import org.jetbrains.kotlin.project.model.* import java.io.File internal fun Project.compilerPluginProviderForMetadata( - fragment: KotlinGradleFragment, + fragment: KpmGradleFragment, compilationData: KotlinCommonFragmentMetadataCompilationData ) = compilerPluginDataProvider(compilationData, fragment::metadataCompilationPluginData) internal fun Project.compilerPluginProviderForNativeMetadata( - fragment: KotlinGradleFragment, + fragment: KpmGradleFragment, compilationData: KotlinNativeFragmentMetadataCompilationData ) = compilerPluginDataProvider(compilationData, fragment::nativeMetadataCompilationPluginData) internal fun Project.compilerPluginProviderForPlatformCompilation( - variant: KotlinGradleVariant, + variant: KpmGradleVariant, compilationData: KotlinCompilationData<*> ) = compilerPluginDataProvider(compilationData, variant::platformCompilationPluginData) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/GradlePlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/GradlePlugin.kt index f7148b2a705..88ffb3ba0a5 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/GradlePlugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/GradlePlugin.kt @@ -44,13 +44,13 @@ abstract class KotlinPm20GradlePlugin @Inject constructor( private fun createDefaultModules(project: Project) { project.pm20Extension.apply { - modules.create(KotlinGradleModule.MAIN_MODULE_NAME) - modules.create(KotlinGradleModule.TEST_MODULE_NAME) + modules.create(KpmGradleModule.MAIN_MODULE_NAME) + modules.create(KpmGradleModule.TEST_MODULE_NAME) main { makePublic() } } } - private fun setupPublicationForModule(module: KotlinGradleModule) { + private fun setupPublicationForModule(module: KpmGradleModule) { val project = module.project val metadataElements = project.configurations.getByName(metadataElementsConfigurationName(module)) @@ -87,7 +87,7 @@ abstract class KotlinPm20GradlePlugin @Inject constructor( } } -fun rootPublicationComponentName(module: KotlinGradleModule) = +fun rootPublicationComponentName(module: KpmGradleModule) = module.disambiguateName("root") open class KotlinPm20ProjectExtension(project: Project) : KotlinTopLevelExtension(project) { @@ -96,53 +96,53 @@ open class KotlinPm20ProjectExtension(project: Project) : KotlinTopLevelExtensio internal val ideaKotlinProjectModelBuilder by lazy { IdeaKotlinProjectModelBuilder.default(this) } - val modules: NamedDomainObjectContainer + val modules: NamedDomainObjectContainer get() = project.kpmModules @Suppress("unused") // DSL function - fun mainAndTest(configure: KotlinGradleModule.() -> Unit) { + fun mainAndTest(configure: KpmGradleModule.() -> Unit) { main(configure) test(configure) } - val main: KotlinGradleModule - get() = modules.getByName(KotlinGradleModule.MAIN_MODULE_NAME) + val main: KpmGradleModule + get() = modules.getByName(KpmGradleModule.MAIN_MODULE_NAME) - val test: KotlinGradleModule - get() = modules.getByName(KotlinGradleModule.TEST_MODULE_NAME) + val test: KpmGradleModule + get() = modules.getByName(KpmGradleModule.TEST_MODULE_NAME) - fun main(configure: KotlinGradleModule.() -> Unit = { }) = main.apply(configure) - fun test(configure: KotlinGradleModule.() -> Unit = { }) = test.apply(configure) + fun main(configure: KpmGradleModule.() -> Unit = { }) = main.apply(configure) + fun test(configure: KpmGradleModule.() -> Unit = { }) = test.apply(configure) @PublishedApi @JvmName("isAllowCommonizer") internal fun isAllowCommonizerForIde(@Suppress("UNUSED_PARAMETER") project: Project): Boolean = false } -val KotlinGradleModule.jvm: KotlinJvmVariant - get() = fragments.maybeCreate("jvm", KotlinJvmVariant::class.java) +val KpmGradleModule.jvm: KpmJvmVariant + get() = fragments.maybeCreate("jvm", KpmJvmVariant::class.java) -fun KotlinGradleModule.jvm(configure: KotlinJvmVariant.() -> Unit): KotlinJvmVariant = jvm.apply(configure) +fun KpmGradleModule.jvm(configure: KpmJvmVariant.() -> Unit): KpmJvmVariant = jvm.apply(configure) -fun KotlinPm20ProjectExtension.jvm(configure: KotlinFragmentSlice.() -> Unit) { - val getOrCreateVariant: KotlinGradleModule.() -> KotlinJvmVariant = { jvm } +fun KotlinPm20ProjectExtension.jvm(configure: KotlinFragmentSlice.() -> Unit) { + val getOrCreateVariant: KpmGradleModule.() -> KpmJvmVariant = { jvm } mainAndTest { getOrCreateVariant(this) } val slice = KotlinFragmentSlice(this, getOrCreateVariant) configure(slice) } -open class KotlinFragmentSlice( +open class KotlinFragmentSlice( val pm20ProjectExtension: KotlinPm20ProjectExtension, - val getOrCreateFragment: (KotlinGradleModule) -> T + val getOrCreateFragment: (KpmGradleModule) -> T ) { fun inMain(configure: T.() -> Unit) { - pm20ProjectExtension.modules.getByName(KotlinGradleModule.MAIN_MODULE_NAME).apply { + pm20ProjectExtension.modules.getByName(KpmGradleModule.MAIN_MODULE_NAME).apply { getOrCreateFragment(this).configure() } } fun inTest(configure: T.() -> Unit) { - pm20ProjectExtension.modules.getByName(KotlinGradleModule.TEST_MODULE_NAME).apply { + pm20ProjectExtension.modules.getByName(KpmGradleModule.TEST_MODULE_NAME).apply { getOrCreateFragment(this).configure() } } @@ -161,11 +161,11 @@ open class KotlinFragmentSlice( pm20ProjectExtension.modules.getByName(moduleName).apply { getOrCreateFragment(this).configure() } } - fun inModule(module: NamedDomainObjectProvider, configure: T.() -> Unit) { + fun inModule(module: NamedDomainObjectProvider, configure: T.() -> Unit) { module.get().apply { inModule(this, configure) } } - fun inModule(module: KotlinGradleModule, configure: T.() -> Unit) { + fun inModule(module: KpmGradleModule, configure: T.() -> Unit) { getOrCreateFragment(module).configure() } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinCommonFragmentFactory.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinCommonFragmentFactory.kt index 0c857b5c978..d4446638209 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinCommonFragmentFactory.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinCommonFragmentFactory.kt @@ -8,37 +8,36 @@ package org.jetbrains.kotlin.gradle.plugin.mpp.pm20 import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.FragmentNameDisambiguation -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.KotlinNameDisambiguation -typealias KotlinCommonFragmentFactory = KotlinGradleFragmentFactory +typealias KotlinCommonFragmentFactory = KotlinGradleFragmentFactory -fun KotlinCommonFragmentFactory(module: KotlinGradleModule): KotlinCommonFragmentFactory = +fun KotlinCommonFragmentFactory(module: KpmGradleModule): KotlinCommonFragmentFactory = KotlinCommonFragmentFactory(KotlinCommonFragmentInstantiator(module)) fun KotlinCommonFragmentFactory( commonFragmentInstantiator: KotlinCommonFragmentInstantiator, commonFragmentConfigurator: KotlinCommonFragmentConfigurator = KotlinCommonFragmentConfigurator() -): KotlinGradleFragmentFactory = KotlinGradleFragmentFactory( +): KotlinGradleFragmentFactory = KotlinGradleFragmentFactory( fragmentInstantiator = commonFragmentInstantiator, fragmentConfigurator = commonFragmentConfigurator ) class KotlinCommonFragmentInstantiator( - private val module: KotlinGradleModule, + private val module: KpmGradleModule, private val dependencyConfigurationsFactory: KotlinFragmentDependencyConfigurationsFactory = DefaultKotlinFragmentDependencyConfigurationsFactory -) : KotlinGradleFragmentFactory.FragmentInstantiator { - override fun create(name: String): KotlinGradleFragmentInternal { +) : KotlinGradleFragmentFactory.FragmentInstantiator { + override fun create(name: String): KpmGradleFragmentInternal { val names = FragmentNameDisambiguation(module, name) - return KotlinGradleFragmentInternal(module, name, dependencyConfigurationsFactory.create(module, names)) + return KpmGradleFragmentInternal(module, name, dependencyConfigurationsFactory.create(module, names)) } } class KotlinCommonFragmentConfigurator( - private val sourceDirectoriesSetup: KotlinSourceDirectoriesConfigurator = + private val sourceDirectoriesSetup: KotlinSourceDirectoriesConfigurator = DefaultKotlinSourceDirectoriesConfigurator -) : KotlinGradleFragmentFactory.FragmentConfigurator { - override fun configure(fragment: KotlinGradleFragmentInternal) { +) : KotlinGradleFragmentFactory.FragmentConfigurator { + override fun configure(fragment: KpmGradleFragmentInternal) { sourceDirectoriesSetup.configure(fragment) } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinCompilationConfigurator.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinCompilationConfigurator.kt index 7942d27eb49..bc4a9ea5cee 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinCompilationConfigurator.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinCompilationConfigurator.kt @@ -7,20 +7,20 @@ package org.jetbrains.kotlin.gradle.plugin.mpp.pm20 import org.gradle.api.tasks.TaskProvider -interface KotlinCompileTaskConfigurator { +interface KotlinCompileTaskConfigurator { fun registerCompileTasks(variant: T): TaskProvider<*> } -object KotlinJvmCompileTaskConfigurator : KotlinCompileTaskConfigurator { - override fun registerCompileTasks(variant: KotlinJvmVariant): TaskProvider<*> { +object KotlinJvmCompileTaskConfigurator : KotlinCompileTaskConfigurator { + override fun registerCompileTasks(variant: KpmJvmVariant): TaskProvider<*> { val compilationData = variant.compilationData LifecycleTasksManager(variant.project).registerClassesTask(compilationData) return KotlinCompilationTaskConfigurator(variant.project).createKotlinJvmCompilationTask(variant, compilationData) } } -object KotlinNativeCompileTaskConfigurator : KotlinCompileTaskConfigurator { - override fun registerCompileTasks(variant: KotlinNativeVariantInternal): TaskProvider<*> { +object KotlinNativeCompileTaskConfigurator : KotlinCompileTaskConfigurator { + override fun registerCompileTasks(variant: KpmNativeVariantInternal): TaskProvider<*> { val compilationData = variant.compilationData LifecycleTasksManager(variant.project).registerClassesTask(compilationData) return KotlinCompilationTaskConfigurator(variant.project).createKotlinNativeCompilationTask(variant, compilationData) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinCompilationData.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinCompilationData.kt index 771bd8870e8..b3b97a11c75 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinCompilationData.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinCompilationData.kt @@ -17,7 +17,6 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.disambiguateName import org.jetbrains.kotlin.gradle.utils.filesProvider import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName import org.jetbrains.kotlin.project.model.VariantResolution -import org.jetbrains.kotlin.project.model.withRefinesClosure interface KotlinVariantCompilationDataInternal : KotlinVariantCompilationData { override val compileKotlinTaskName: String @@ -27,7 +26,7 @@ interface KotlinVariantCompilationDataInternal : Kotlin get() = owner.disambiguateName("classes") override val kotlinSourceDirectoriesByFragmentName: Map - get() = owner.withRefinesClosure.filterIsInstance().associate { it.disambiguateName("") to it.kotlinSourceRoots } + get() = owner.withRefinesClosure.filterIsInstance().associate { it.disambiguateName("") to it.kotlinSourceRoots } override val friendPaths: Iterable get() { @@ -55,21 +54,21 @@ interface KotlinVariantCompilationDataInternal : Kotlin override val moduleName: String get() = // TODO accurate module names that don't rely on all variants having a main counterpart owner.containingModule.project.kpmModules - .getByName(KotlinGradleModule.MAIN_MODULE_NAME).variants.findByName(owner.name)?.ownModuleName() ?: ownModuleName + .getByName(KpmGradleModule.MAIN_MODULE_NAME).variants.findByName(owner.name)?.ownModuleName() ?: ownModuleName override val ownModuleName: String get() = owner.ownModuleName() - private fun resolveFriendVariants(): Iterable { - val moduleResolver = GradleModuleDependencyResolver.getForCurrentBuild(project) + private fun resolveFriendVariants(): Iterable { + val moduleResolver = KpmGradleModuleDependencyResolver.getForCurrentBuild(project) val variantResolver = GradleModuleVariantResolver.getForCurrentBuild(project) - val dependencyGraphResolver = GradleKotlinDependencyGraphResolver(moduleResolver) + val dependencyGraphResolver = KpmGradleDependencyGraphResolver(moduleResolver) val friendModules = - ((dependencyGraphResolver.resolveDependencyGraph(owner.containingModule) as? GradleDependencyGraph) + ((dependencyGraphResolver.resolveDependencyGraph(owner.containingModule) as? KpmGradleDependencyGraph) ?: error("Failed to resolve dependencies of ${owner.containingModule}")) .allDependencyModules - .filterIsInstance() + .filterIsInstance() .filter { dependencyModule -> // the module comes from the same Gradle project // todo: extend to other friends once supported dependencyModule.project == owner.containingModule.project @@ -79,11 +78,11 @@ interface KotlinVariantCompilationDataInternal : Kotlin .map { friendModule -> variantResolver.getChosenVariant(owner, friendModule) } // also, important to check that the owner variant really requests this module: .filterIsInstance() - .mapNotNull { variantMatch -> variantMatch.chosenVariant as? KotlinGradleVariant } + .mapNotNull { variantMatch -> variantMatch.chosenVariant as? KpmGradleVariant } } } fun KotlinCompilationData<*>.isMainCompilationData(): Boolean = when (this) { is KotlinCompilation<*> -> isMain() - else -> compilationPurpose == KotlinGradleModule.MAIN_MODULE_NAME + else -> compilationPurpose == KpmGradleModule.MAIN_MODULE_NAME } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinCompilationTaskConfigurator.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinCompilationTaskConfigurator.kt index 63e5036c039..499adce4682 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinCompilationTaskConfigurator.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinCompilationTaskConfigurator.kt @@ -20,14 +20,14 @@ open class KotlinCompilationTaskConfigurator( ) { open val fragmentSourcesProvider: FragmentSourcesProvider = FragmentSourcesProvider() - open fun getSourcesForFragmentCompilation(fragment: KotlinGradleFragment): MultipleSourceRootsProvider = + open fun getSourcesForFragmentCompilation(fragment: KpmGradleFragment): MultipleSourceRootsProvider = fragmentSourcesProvider.getSourcesFromRefinesClosure(fragment) - open fun getCommonSourcesForFragmentCompilation(fragment: KotlinGradleFragment): MultipleSourceRootsProvider = + open fun getCommonSourcesForFragmentCompilation(fragment: KpmGradleFragment): MultipleSourceRootsProvider = fragmentSourcesProvider.getCommonSourcesFromRefinesClosure(fragment) fun createKotlinJvmCompilationTask( - variant: KotlinGradleVariant, + variant: KpmGradleVariant, compilationData: KotlinCompilationData<*> ): TaskProvider { Kotlin2JvmSourceSetProcessor(KotlinTasksProvider(), compilationData).run() @@ -46,7 +46,7 @@ open class KotlinCompilationTaskConfigurator( } protected fun createKotlinNativeCompilationTask( - fragment: KotlinGradleFragment, + fragment: KpmGradleFragment, compilationData: KotlinNativeCompilationData<*>, configure: KotlinNativeCompile.() -> Unit ): TaskProvider { @@ -65,9 +65,9 @@ open class KotlinCompilationTaskConfigurator( } fun createKotlinNativeCompilationTask( - variant: KotlinGradleVariant, + variant: KpmGradleVariant, compilationData: KotlinNativeCompilationData<*> ): TaskProvider = createKotlinNativeCompilationTask(variant, compilationData) { kotlinPluginData = project.compilerPluginProviderForPlatformCompilation(variant, compilationData) } - } \ No newline at end of file + } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinFragmentCompilationOutputsJarArtifact.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinFragmentCompilationOutputsJarArtifact.kt index 6d7bd75e31a..6721c16210e 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinFragmentCompilationOutputsJarArtifact.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinFragmentCompilationOutputsJarArtifact.kt @@ -14,7 +14,7 @@ import org.jetbrains.kotlin.gradle.utils.dashSeparatedLowercaseName /** * Registers a [Jar] task with the variant's compilation outputs and attaches this artifact to the given configuration. */ -val KotlinFragmentCompilationOutputsJarArtifact = FragmentArtifacts { +val KotlinFragmentCompilationOutputsJarArtifact = FragmentArtifacts { val jar = project.locateOrRegisterTask(fragment.outputsJarTaskName) { it.from(fragment.compilationOutputs.allOutputs) it.archiveAppendix.set(dashSeparatedLowercaseName(fragment.name, fragment.containingModule.moduleClassifier)) @@ -23,5 +23,5 @@ val KotlinFragmentCompilationOutputsJarArtifact = FragmentArtifacts artifacts@{ +val KotlinFragmentHostSpecificMetadataArtifact = FragmentArtifacts artifacts@{ val hostSpecificMetadataElements = fragment.hostSpecificMetadataElementsConfiguration ?: return@artifacts val hostSpecificMetadataJar = project.registerTask(fragment.disambiguateName("hostSpecificMetadataJar")) { jar -> diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinFragmentModuleCapability.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinFragmentModuleCapability.kt index 93a74dff47c..5813b27c854 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinFragmentModuleCapability.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinFragmentModuleCapability.kt @@ -9,13 +9,13 @@ import org.gradle.api.artifacts.Configuration import org.gradle.api.capabilities.Capability import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.ComputedCapability -val KotlinFragmentModuleCapability = FragmentCapabilities { +val KotlinFragmentModuleCapability = FragmentCapabilities { capability(fragment.containingModule.moduleCapability ?: return@FragmentCapabilities) } -internal fun setModuleCapability(configuration: Configuration, module: KotlinGradleModule) { +internal fun setModuleCapability(configuration: Configuration, module: KpmGradleModule) { configuration.outgoing.capability(module.moduleCapability ?: return) } -internal val KotlinGradleModule.moduleCapability: Capability? +internal val KpmGradleModule.moduleCapability: Capability? get() = if (moduleClassifier != null) ComputedCapability.fromModule(this) else null diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleFragmentConfigurationArtifacts.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleFragmentConfigurationArtifacts.kt index 2991200d6cc..6fd1820d198 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleFragmentConfigurationArtifacts.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleFragmentConfigurationArtifacts.kt @@ -14,15 +14,15 @@ import org.gradle.api.artifacts.ConfigurationVariant /* Internal abbreviation */ internal typealias FragmentArtifacts = KotlinGradleFragmentConfigurationArtifacts -interface KotlinGradleFragmentConfigurationArtifacts { +interface KotlinGradleFragmentConfigurationArtifacts { fun addArtifacts(outgoing: ConfigurationPublications, fragment: T) - object None : KotlinGradleFragmentConfigurationArtifacts { - override fun addArtifacts(outgoing: ConfigurationPublications, fragment: KotlinGradleFragment) = Unit + object None : KotlinGradleFragmentConfigurationArtifacts { + override fun addArtifacts(outgoing: ConfigurationPublications, fragment: KpmGradleFragment) = Unit } } -class KotlinGradleFragmentConfigurationArtifactsContext internal constructor( +class KotlinGradleFragmentConfigurationArtifactsContext internal constructor( internal val outgoing: ConfigurationPublications, val fragment: T ) { @@ -40,7 +40,7 @@ class KotlinGradleFragmentConfigurationArtifactsContext FragmentArtifacts( +fun FragmentArtifacts( addArtifacts: KotlinGradleFragmentConfigurationArtifactsContext.() -> Unit ): KotlinGradleFragmentConfigurationArtifacts { return object : KotlinGradleFragmentConfigurationArtifacts { @@ -51,7 +51,7 @@ fun FragmentArtifacts( } } -operator fun FragmentArtifacts.plus(other: FragmentArtifacts): FragmentArtifacts { +operator fun FragmentArtifacts.plus(other: FragmentArtifacts): FragmentArtifacts { if (this === KotlinGradleFragmentConfigurationArtifacts.None) return other if (other === KotlinGradleFragmentConfigurationArtifacts.None) return this @@ -70,7 +70,7 @@ operator fun FragmentArtifacts.plus(other: Fragmen return CompositeFragmentArtifacts(listOf(this, other)) } -internal class CompositeFragmentArtifacts(val children: List>) : +internal class CompositeFragmentArtifacts(val children: List>) : FragmentArtifacts { override fun addArtifacts(outgoing: ConfigurationPublications, fragment: T) { diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleFragmentConfigurationAttributes.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleFragmentConfigurationAttributes.kt index 9c987838115..eb51e4eb90a 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleFragmentConfigurationAttributes.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleFragmentConfigurationAttributes.kt @@ -13,16 +13,16 @@ import org.gradle.api.attributes.AttributeContainer /* Internal abbreviation */ internal typealias FragmentAttributes = KotlinGradleFragmentConfigurationAttributes -interface KotlinGradleFragmentConfigurationAttributes { +interface KotlinGradleFragmentConfigurationAttributes { fun setAttributes(attributes: AttributeContainer, fragment: T) - object None : FragmentAttributes { - override fun setAttributes(attributes: AttributeContainer, fragment: KotlinGradleFragment) = Unit + object None : FragmentAttributes { + override fun setAttributes(attributes: AttributeContainer, fragment: KpmGradleFragment) = Unit } } -class KotlinGradleFragmentConfigurationAttributesContext internal constructor( +class KotlinGradleFragmentConfigurationAttributesContext internal constructor( internal val attributes: AttributeContainer, val fragment: T, ) : AttributeContainer by attributes { @@ -38,7 +38,7 @@ class KotlinGradleFragmentConfigurationAttributesContext FragmentAttributes( +fun FragmentAttributes( setAttributes: KotlinGradleFragmentConfigurationAttributesContext.() -> Unit ): KotlinGradleFragmentConfigurationAttributes { return object : KotlinGradleFragmentConfigurationAttributes { @@ -49,13 +49,13 @@ fun FragmentAttributes( } } -fun AttributeContainer.apply( +fun AttributeContainer.apply( attributes: KotlinGradleFragmentConfigurationAttributes, fragment: T ) { attributes.setAttributes(this, fragment) } -operator fun FragmentAttributes.plus(other: FragmentAttributes): FragmentAttributes { +operator fun FragmentAttributes.plus(other: FragmentAttributes): FragmentAttributes { if (this === KotlinGradleFragmentConfigurationAttributes.None) return other if (other === KotlinGradleFragmentConfigurationAttributes.None) return this @@ -74,7 +74,7 @@ operator fun FragmentAttributes.plus(other: Fragme return CompositeFragmentAttributes(listOf(this, other)) } -internal class CompositeFragmentAttributes(val children: List>) : +internal class CompositeFragmentAttributes(val children: List>) : FragmentAttributes { override fun setAttributes(attributes: AttributeContainer, fragment: T) { children.forEach { child -> child.setAttributes(attributes, fragment) } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleFragmentConfigurationCapabilities.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleFragmentConfigurationCapabilities.kt index af7325288ea..84e9609a0d8 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleFragmentConfigurationCapabilities.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleFragmentConfigurationCapabilities.kt @@ -16,19 +16,19 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleFragmentConfigura /* Internal abbreviation */ internal typealias FragmentCapabilities = KotlinGradleFragmentConfigurationCapabilities -interface KotlinGradleFragmentConfigurationCapabilities { +interface KotlinGradleFragmentConfigurationCapabilities { interface CapabilitiesContainer { fun capability(notation: Any) } fun setCapabilities(container: CapabilitiesContainer, fragment: T) - object None : KotlinGradleFragmentConfigurationCapabilities { - override fun setCapabilities(container: CapabilitiesContainer, fragment: KotlinGradleFragment) = Unit + object None : KotlinGradleFragmentConfigurationCapabilities { + override fun setCapabilities(container: CapabilitiesContainer, fragment: KpmGradleFragment) = Unit } } -fun KotlinGradleFragmentConfigurationCapabilities.setCapabilities( +fun KotlinGradleFragmentConfigurationCapabilities.setCapabilities( publications: ConfigurationPublications, fragment: T ) = setCapabilities(CapabilitiesContainer(publications), fragment) @@ -44,13 +44,13 @@ private class CapabilitiesContainerImpl( override fun capability(notation: Any) = publications.capability(notation) } -class KotlinGradleFragmentConfigurationCapabilitiesContext internal constructor( +class KotlinGradleFragmentConfigurationCapabilitiesContext internal constructor( internal val container: CapabilitiesContainer, val fragment: T ) : CapabilitiesContainer by container { val project: Project get() = fragment.project } -fun FragmentCapabilities( +fun FragmentCapabilities( setCapabilities: KotlinGradleFragmentConfigurationCapabilitiesContext.() -> Unit ): KotlinGradleFragmentConfigurationCapabilities = object : KotlinGradleFragmentConfigurationCapabilities { override fun setCapabilities(container: CapabilitiesContainer, fragment: T) { @@ -59,7 +59,7 @@ fun FragmentCapabilities( } } -operator fun FragmentCapabilities.plus(other: FragmentCapabilities): FragmentCapabilities { +operator fun FragmentCapabilities.plus(other: FragmentCapabilities): FragmentCapabilities { if (this === KotlinGradleFragmentConfigurationCapabilities.None) return other if (other === KotlinGradleFragmentConfigurationCapabilities.None) return this @@ -78,7 +78,7 @@ operator fun FragmentCapabilities.plus(other: Frag return CompositeFragmentCapabilities(listOf(this, other)) } -internal class CompositeFragmentCapabilities(val children: List>) : +internal class CompositeFragmentCapabilities(val children: List>) : FragmentCapabilities { override fun setCapabilities(container: CapabilitiesContainer, fragment: T) { children.forEach { child -> child.setCapabilities(container, fragment) } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleFragmentConfigurationDefinition.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleFragmentConfigurationDefinition.kt index 4e8f7a36314..8375be1b1b5 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleFragmentConfigurationDefinition.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleFragmentConfigurationDefinition.kt @@ -12,7 +12,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.KotlinNameDisambiguation /* Internal abbreviation */ internal typealias ConfigurationDefinition = KotlinGradleFragmentConfigurationDefinition -data class KotlinGradleFragmentConfigurationDefinition( +data class KotlinGradleFragmentConfigurationDefinition( val provider: KotlinGradleFragmentConfigurationProvider, val attributes: KotlinGradleFragmentConfigurationAttributes = KotlinGradleFragmentConfigurationAttributes.None, val artifacts: KotlinGradleFragmentConfigurationArtifacts = KotlinGradleFragmentConfigurationArtifacts.None, @@ -26,29 +26,29 @@ internal typealias ConfigurationContext = KotlinGradleFragmentConfigurationConte interface KotlinGradleFragmentConfigurationContext : KotlinNameDisambiguation { val project: Project get() = module.project - val module: KotlinGradleModule + val module: KpmGradleModule val dependencies: KotlinFragmentDependencyConfigurations } internal class KotlinGradleFragmentConfigurationContextImpl( - override val module: KotlinGradleModule, + override val module: KpmGradleModule, override val dependencies: KotlinFragmentDependencyConfigurations, names: KotlinNameDisambiguation ) : KotlinGradleFragmentConfigurationContext, KotlinNameDisambiguation by names -fun KotlinGradleFragmentConfigurationDefinition.withConfigurationProvider( +fun KotlinGradleFragmentConfigurationDefinition.withConfigurationProvider( provider: KotlinGradleFragmentConfigurationContext.() -> Configuration ) = copy(provider = ConfigurationProvider(provider)) -operator fun KotlinGradleFragmentConfigurationDefinition.plus(other: FragmentAttributes): +operator fun KotlinGradleFragmentConfigurationDefinition.plus(other: FragmentAttributes): KotlinGradleFragmentConfigurationDefinition = copy(attributes = attributes + other) -operator fun KotlinGradleFragmentConfigurationDefinition.plus(other: FragmentArtifacts): +operator fun KotlinGradleFragmentConfigurationDefinition.plus(other: FragmentArtifacts): KotlinGradleFragmentConfigurationDefinition = copy(artifacts = artifacts + other) -operator fun KotlinGradleFragmentConfigurationDefinition.plus(other: FragmentConfigurationRelation): +operator fun KotlinGradleFragmentConfigurationDefinition.plus(other: FragmentConfigurationRelation): KotlinGradleFragmentConfigurationDefinition = copy(relations = relations + other) @AdvancedKotlinGradlePluginApi -operator fun KotlinGradleFragmentConfigurationDefinition.plus(other: FragmentCapabilities): +operator fun KotlinGradleFragmentConfigurationDefinition.plus(other: FragmentCapabilities): KotlinGradleFragmentConfigurationDefinition = copy(capabilities = capabilities + other) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleFragmentFactory.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleFragmentFactory.kt index 050dfa7fd35..43856860ecd 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleFragmentFactory.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleFragmentFactory.kt @@ -11,7 +11,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleFragmentFactory.F import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleFragmentFactory.FragmentInstantiator /** - * Factory used by [KotlinGradleModule] to polymorphic-ally create fragments/variants. + * Factory used by [KpmGradleModule] to polymorphic-ally create fragments/variants. * Fragments are created in two stages with this factory: * * [FragmentInstantiator]: @@ -26,7 +26,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleFragmentFactory.F * - Setting up additional Gradle tasks * - Setting up publication */ -class KotlinGradleFragmentFactory( +class KotlinGradleFragmentFactory( private val fragmentInstantiator: FragmentInstantiator, private val fragmentConfigurator: FragmentConfigurator ) : NamedDomainObjectFactory { @@ -34,14 +34,14 @@ class KotlinGradleFragmentFactory( /** * @see KotlinGradleFragmentFactory */ - interface FragmentInstantiator { + interface FragmentInstantiator { fun create(name: String): T } /** * @see KotlinGradleFragmentFactory */ - interface FragmentConfigurator { + interface FragmentConfigurator { fun configure(fragment: T) } @@ -50,7 +50,7 @@ class KotlinGradleFragmentFactory( } } -internal fun Configuration.configure( +internal fun Configuration.configure( definition: KotlinGradleFragmentConfigurationDefinition, fragment: T ) { definition.attributes.setAttributes(attributes, fragment) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleFragmentInternal.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleFragmentInternal.kt index 3a045d778b2..a0b89efb286 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleFragmentInternal.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleFragmentInternal.kt @@ -20,16 +20,16 @@ import org.jetbrains.kotlin.gradle.plugin.sources.FragmentConsistencyChecker import org.jetbrains.kotlin.gradle.plugin.sources.FragmentConsistencyChecks import org.jetbrains.kotlin.gradle.utils.addExtendsFromRelation import org.jetbrains.kotlin.gradle.utils.runProjectConfigurationHealthCheckWhenEvaluated -import org.jetbrains.kotlin.project.model.KotlinModuleDependency +import org.jetbrains.kotlin.project.model.KpmModuleDependency import org.jetbrains.kotlin.tooling.core.MutableExtras import org.jetbrains.kotlin.tooling.core.mutableExtrasOf import javax.inject.Inject -open class KotlinGradleFragmentInternal @Inject constructor( - final override val containingModule: KotlinGradleModule, +open class KpmGradleFragmentInternal @Inject constructor( + final override val containingModule: KpmGradleModule, final override val fragmentName: String, dependencyConfigurations: KotlinFragmentDependencyConfigurations -) : KotlinGradleFragment, +) : KpmGradleFragment, KotlinFragmentDependencyConfigurations by dependencyConfigurations { final override fun getName(): String = fragmentName @@ -44,12 +44,12 @@ open class KotlinGradleFragmentInternal @Inject constructor( // FIXME check for consistency override val languageSettings: LanguageSettingsBuilder = DefaultLanguageSettingsBuilder() - override fun refines(other: KotlinGradleFragment) { + override fun refines(other: KpmGradleFragment) { checkCanRefine(other) refines(containingModule.fragments.named(other.name)) } - override fun refines(other: NamedDomainObjectProvider) { + override fun refines(other: NamedDomainObjectProvider) { _directRefinesDependencies.add(other) other.configure { checkCanRefine(it) } @@ -66,11 +66,11 @@ open class KotlinGradleFragmentInternal @Inject constructor( ) project.runProjectConfigurationHealthCheckWhenEvaluated { - kotlinGradleFragmentConsistencyChecker.runAllChecks(this@KotlinGradleFragmentInternal, other.get()) + kotlinGradleFragmentConsistencyChecker.runAllChecks(this@KpmGradleFragmentInternal, other.get()) } } - private fun checkCanRefine(other: KotlinGradleFragment) { + private fun checkCanRefine(other: KpmGradleFragment) { check(containingModule == other.containingModule) { "Fragments can only refine each other within one module. Can't make $this refine $other" } @@ -82,15 +82,15 @@ open class KotlinGradleFragmentInternal @Inject constructor( override fun dependencies(configureClosure: Closure) = dependencies f@{ ConfigureUtil.configure(configureClosure, this@f) } - private val _directRefinesDependencies = mutableSetOf>() + private val _directRefinesDependencies = mutableSetOf>() - override val directRefinesDependencies: Iterable + override val declaredRefinesDependencies: Iterable get() = _directRefinesDependencies.map { it.get() }.toSet() // TODO: separate the declared module dependencies and exported module dependencies? we need this to keep implementation dependencies // out of the consumer's metadata compilations compile classpath; however, Native variants must expose implementation as API // anyway, so for now all fragments follow that behavior - override val declaredModuleDependencies: Iterable + override val declaredModuleDependencies: Iterable get() = listOf(apiConfiguration, implementationConfiguration).flatMapTo(mutableSetOf()) { exportConfiguration -> exportConfiguration.allDependencies.map { dependency -> dependency.toModuleDependency(project) } } @@ -106,7 +106,7 @@ open class KotlinGradleFragmentInternal @Inject constructor( FragmentConsistencyChecker( unitsName = "fragments", name = { name }, - checks = FragmentConsistencyChecks( + checks = FragmentConsistencyChecks( unitName = "fragment", languageSettings = { languageSettings } ).allChecks diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleModule.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleModule.kt index 8e9954c5d12..7ffd0740796 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleModule.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleModule.kt @@ -15,26 +15,26 @@ import org.jetbrains.kotlin.project.model.* import org.jetbrains.kotlin.project.model.utils.variantsContainingFragment import javax.inject.Inject -open class KotlinGradleModuleInternal( +open class KpmGradleModuleInternal( final override val project: Project, final override val moduleClassifier: String? -) : KotlinGradleModule { +) : KpmGradleModule { @Inject constructor(project: Project, moduleName: CharSequence) : this( project, - moduleName.takeIf { it != KotlinGradleModule.MAIN_MODULE_NAME }?.toString() + moduleName.takeIf { it != KpmGradleModule.MAIN_MODULE_NAME }?.toString() ) - override val moduleIdentifier: KotlinModuleIdentifier = - LocalModuleIdentifier(project.currentBuildId().name, project.path, moduleClassifier) + override val moduleIdentifier: KpmModuleIdentifier = + KpmLocalModuleIdentifier(project.currentBuildId().name, project.path, moduleClassifier) - override val fragments: ExtensiblePolymorphicDomainObjectContainer = - project.objects.polymorphicDomainObjectContainer(KotlinGradleFragment::class.java) + override val fragments: ExtensiblePolymorphicDomainObjectContainer = + project.objects.polymorphicDomainObjectContainer(KpmGradleFragment::class.java) // TODO DSL & build script model: find a way to create a flexible typed view on fragments? - override val variants: NamedDomainObjectSet by lazy { - fragments.withType(KotlinGradleVariant::class.java) + override val variants: NamedDomainObjectSet by lazy { + fragments.withType(KpmGradleVariant::class.java) } override val plugins: Set by lazy { @@ -70,14 +70,14 @@ open class KotlinGradleModuleInternal( override fun toString(): String = "$moduleIdentifier (Gradle)" } -internal val KotlinGradleModule.resolvableMetadataConfigurationName: String +internal val KpmGradleModule.resolvableMetadataConfigurationName: String get() = lowerCamelCaseName(name, "DependenciesMetadata") -internal val KotlinGradleModule.isMain +internal val KpmGradleModule.isMain get() = moduleIdentifier.moduleClassifier == null -internal fun KotlinGradleModule.disambiguateName(simpleName: String) = +internal fun KpmGradleModule.disambiguateName(simpleName: String) = lowerCamelCaseName(moduleClassifier, simpleName) -internal fun KotlinGradleModule.variantsContainingFragment(fragment: KotlinModuleFragment): Iterable = - (this as KotlinModule).variantsContainingFragment(fragment).onEach { it as KotlinGradleVariant } as Iterable +internal fun KpmGradleModule.variantsContainingFragment(fragment: KpmFragment): Iterable = + (this as KpmModule).variantsContainingFragment(fragment).onEach { it as KpmGradleVariant } as Iterable diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleModuleFactory.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleModuleFactory.kt index 9b495b983ac..dfbde4dd29c 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleModuleFactory.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinGradleModuleFactory.kt @@ -7,11 +7,10 @@ package org.jetbrains.kotlin.gradle.plugin.mpp.pm20 import org.gradle.api.NamedDomainObjectFactory import org.gradle.api.Project -import org.jetbrains.kotlin.gradle.dsl.pm20Extension -open class KotlinGradleModuleFactory(private val project: Project) : NamedDomainObjectFactory { - override fun create(name: String): KotlinGradleModule { - val result = project.objects.newInstance(KotlinGradleModuleInternal::class.java, project, name) +open class KotlinGradleModuleFactory(private val project: Project) : NamedDomainObjectFactory { + override fun create(name: String): KpmGradleModule { + val result = project.objects.newInstance(KpmGradleModuleInternal::class.java, project, name) registerFragmentFactory(result) registerDefaultCommonFragment(result) addDefaultDependencyOnMainModule(result) @@ -19,29 +18,29 @@ open class KotlinGradleModuleFactory(private val project: Project) : NamedDomain return result } - protected open fun registerDefaultCommonFragment(module: KotlinGradleModule) { - module.fragments.register(KotlinGradleFragment.COMMON_FRAGMENT_NAME, KotlinGradleFragment::class.java) + protected open fun registerDefaultCommonFragment(module: KpmGradleModule) { + module.fragments.register(KpmGradleFragment.COMMON_FRAGMENT_NAME, KpmGradleFragment::class.java) } - protected open fun addDefaultRefinementDependencyOnCommon(module: KotlinGradleModule) { - module.fragments.matching { it.name != KotlinGradleFragment.COMMON_FRAGMENT_NAME }.all { - it.refines(module.fragments.named(KotlinGradleFragment.COMMON_FRAGMENT_NAME)) + protected open fun addDefaultRefinementDependencyOnCommon(module: KpmGradleModule) { + module.fragments.matching { it.name != KpmGradleFragment.COMMON_FRAGMENT_NAME }.all { + it.refines(module.fragments.named(KpmGradleFragment.COMMON_FRAGMENT_NAME)) } } - protected open fun addDefaultDependencyOnMainModule(module: KotlinGradleModule) { - if (module.name != KotlinGradleModule.MAIN_MODULE_NAME) { + protected open fun addDefaultDependencyOnMainModule(module: KpmGradleModule) { + if (module.name != KpmGradleModule.MAIN_MODULE_NAME) { module.fragments - .matching { it.fragmentName == KotlinGradleFragment.COMMON_FRAGMENT_NAME } + .matching { it.fragmentName == KpmGradleFragment.COMMON_FRAGMENT_NAME } .configureEach { commonFragment -> commonFragment.dependencies { - api(module.project.kpmModules.getByName(KotlinGradleModule.MAIN_MODULE_NAME)) + api(module.project.kpmModules.getByName(KpmGradleModule.MAIN_MODULE_NAME)) } } } } - protected open fun registerFragmentFactory(module: KotlinGradleModule) { - module.fragments.registerFactory(KotlinGradleFragment::class.java, KotlinCommonFragmentFactory(module)) + protected open fun registerFragmentFactory(module: KpmGradleModule) { + module.fragments.registerFactory(KpmGradleFragment::class.java, KotlinCommonFragmentFactory(module)) } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinJvmVariant.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinJvmVariant.kt index 8e6cdcb4147..feb84197a19 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinJvmVariant.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinJvmVariant.kt @@ -13,15 +13,15 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.* import org.jetbrains.kotlin.gradle.plugin.mpp.filterModuleName import org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmTarget -open class KotlinJvmVariant( - containingModule: KotlinGradleModule, +open class KpmJvmVariant( + containingModule: KpmGradleModule, fragmentName: String, dependencyConfigurations: KotlinFragmentDependencyConfigurations, compileDependenciesConfiguration: Configuration, apiElementsConfiguration: Configuration, runtimeDependenciesConfiguration: Configuration, runtimeElementsConfiguration: Configuration -) : KotlinGradlePublishedVariantWithRuntime( +) : KpmGradlePublishedVariantWithRuntime( containingModule = containingModule, fragmentName = fragmentName, dependencyConfigurations = dependencyConfigurations, @@ -36,14 +36,14 @@ open class KotlinJvmVariant( get() = KotlinPlatformType.jvm } -class KotlinJvmVariantCompilationData(val variant: KotlinJvmVariant) : KotlinVariantCompilationDataInternal { - override val owner: KotlinJvmVariant get() = variant +class KotlinJvmVariantCompilationData(val variant: KpmJvmVariant) : KotlinVariantCompilationDataInternal { + override val owner: KpmJvmVariant get() = variant // TODO pull out to the variant override val kotlinOptions: KotlinJvmOptions = KotlinJvmOptionsImpl() } -internal fun KotlinGradleVariant.ownModuleName(): String { +internal fun KpmGradleVariant.ownModuleName(): String { val project = containingModule.project val baseName = project.archivesName ?: project.name @@ -56,10 +56,10 @@ internal class KotlinMappedJvmCompilationFactory( ) : KotlinJvmCompilationFactory(target) { override fun create(name: String): KotlinJvmCompilation { val module = target.project.kpmModules.maybeCreate(name) - val variant = module.fragments.create(target.name, KotlinJvmVariant::class.java) + val variant = module.fragments.create(target.name, KpmJvmVariant::class.java) return KotlinJvmCompilation( VariantMappedCompilationDetailsWithRuntime(variant, target), ) } -} \ No newline at end of file +} diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinJvmVariantFactory.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinJvmVariantFactory.kt index 354f421bd7f..f37f4182a11 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinJvmVariantFactory.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinJvmVariantFactory.kt @@ -9,10 +9,10 @@ package org.jetbrains.kotlin.gradle.plugin.mpp.pm20 import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.FragmentNameDisambiguationOmittingMain -typealias KotlinJvmVariantFactory = KotlinGradleFragmentFactory +typealias KotlinJvmVariantFactory = KotlinGradleFragmentFactory fun KotlinJvmVariantFactory( - module: KotlinGradleModule, config: KotlinJvmVariantConfig = KotlinJvmVariantConfig() + module: KpmGradleModule, config: KotlinJvmVariantConfig = KotlinJvmVariantConfig() ): KotlinJvmVariantFactory = KotlinJvmVariantFactory( KotlinJvmVariantInstantiator(module, config), KotlinJvmVariantConfigurator(config) @@ -22,43 +22,43 @@ data class KotlinJvmVariantConfig( val dependenciesConfigurationFactory: KotlinFragmentDependencyConfigurationsFactory = DefaultKotlinFragmentDependencyConfigurationsFactory, - val compileDependencies: KotlinGradleFragmentConfigurationDefinition + val compileDependencies: KotlinGradleFragmentConfigurationDefinition = DefaultKotlinCompileDependenciesDefinition, - val runtimeDependencies: KotlinGradleFragmentConfigurationDefinition + val runtimeDependencies: KotlinGradleFragmentConfigurationDefinition = DefaultKotlinRuntimeDependenciesDefinition, - val apiElements: KotlinGradleFragmentConfigurationDefinition + val apiElements: KotlinGradleFragmentConfigurationDefinition = DefaultKotlinApiElementsDefinition + KotlinFragmentCompilationOutputsJarArtifact, - val runtimeElements: KotlinGradleFragmentConfigurationDefinition + val runtimeElements: KotlinGradleFragmentConfigurationDefinition = DefaultKotlinRuntimeElementsDefinition, - val compileTaskConfigurator: KotlinCompileTaskConfigurator + val compileTaskConfigurator: KotlinCompileTaskConfigurator = KotlinJvmCompileTaskConfigurator, - val sourceArchiveTaskConfigurator: KotlinSourceArchiveTaskConfigurator + val sourceArchiveTaskConfigurator: KotlinSourceArchiveTaskConfigurator = DefaultKotlinSourceArchiveTaskConfigurator, - val sourceDirectoriesConfigurator: KotlinSourceDirectoriesConfigurator + val sourceDirectoriesConfigurator: KotlinSourceDirectoriesConfigurator = DefaultKotlinSourceDirectoriesConfigurator, - val publicationConfigurator: KotlinPublicationConfigurator + val publicationConfigurator: KotlinPublicationConfigurator = KotlinPublicationConfigurator.SingleVariantPublication ) class KotlinJvmVariantInstantiator internal constructor( - private val module: KotlinGradleModule, + private val module: KpmGradleModule, private val config: KotlinJvmVariantConfig -) : KotlinGradleFragmentFactory.FragmentInstantiator { +) : KotlinGradleFragmentFactory.FragmentInstantiator { - override fun create(name: String): KotlinJvmVariant { + override fun create(name: String): KpmJvmVariant { val names = FragmentNameDisambiguationOmittingMain(module, name) val context = KotlinGradleFragmentConfigurationContextImpl( module, config.dependenciesConfigurationFactory.create(module, names), names ) - return KotlinJvmVariant( + return KpmJvmVariant( containingModule = module, fragmentName = name, dependencyConfigurations = context.dependencies, @@ -80,9 +80,9 @@ class KotlinJvmVariantInstantiator internal constructor( class KotlinJvmVariantConfigurator internal constructor( private val config: KotlinJvmVariantConfig -) : KotlinGradleFragmentFactory.FragmentConfigurator { +) : KotlinGradleFragmentFactory.FragmentConfigurator { - override fun configure(fragment: KotlinJvmVariant) { + override fun configure(fragment: KpmJvmVariant) { fragment.compileDependenciesConfiguration.configure(config.compileDependencies, fragment) fragment.runtimeDependenciesConfiguration.configure(config.runtimeDependencies, fragment) fragment.apiElementsConfiguration.configure(config.apiElements, fragment) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinMetadataCompilationData.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinMetadataCompilationData.kt index cdfac3edc88..49df2f657ba 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinMetadataCompilationData.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinMetadataCompilationData.kt @@ -32,8 +32,8 @@ interface KotlinCommonFragmentMetadataCompilationData : KotlinMetadataCompilatio internal abstract class AbstractKotlinFragmentMetadataCompilationData( final override val project: Project, - val fragment: KotlinGradleFragment, - private val module: KotlinGradleModule, + val fragment: KpmGradleFragment, + private val module: KpmGradleModule, private val compileAllTask: TaskProvider, val metadataCompilationRegistry: MetadataCompilationRegistry, private val resolvedMetadataFiles: Lazy> @@ -106,8 +106,8 @@ internal abstract class AbstractKotlinFragmentMetadataCompilationData, metadataCompilationRegistry: MetadataCompilationRegistry, resolvedMetadataFiles: Lazy> @@ -133,18 +133,18 @@ interface KotlinNativeFragmentMetadataCompilationData : KotlinMetadataCompilationData, KotlinNativeCompilationData -internal fun KotlinGradleFragment.isNativeShared(): Boolean = +internal fun KpmGradleFragment.isNativeShared(): Boolean = containingVariants.run { any() && all { it.platformType == KotlinPlatformType.native } } -internal fun KotlinGradleFragment.isNativeHostSpecific(): Boolean = +internal fun KpmGradleFragment.isNativeHostSpecific(): Boolean = this in getHostSpecificFragments(containingModule) internal open class KotlinNativeFragmentMetadataCompilationDataImpl( project: Project, - fragment: KotlinGradleFragment, - module: KotlinGradleModule, + fragment: KpmGradleFragment, + module: KpmGradleModule, compileAllTask: TaskProvider, metadataCompilationRegistry: MetadataCompilationRegistry, resolvedMetadataFiles: Lazy> @@ -168,7 +168,7 @@ internal open class KotlinNativeFragmentMetadataCompilationDataImpl( override val konanTarget: KonanTarget get() { val nativeVariants = - fragment.containingVariants.filterIsInstance() + fragment.containingVariants.filterIsInstance() return nativeVariants.firstOrNull { it.konanTarget.enabledOnCurrentHost }?.konanTarget ?: nativeVariants.firstOrNull()?.konanTarget ?: HostManager.host @@ -182,10 +182,10 @@ internal open class KotlinNativeFragmentMetadataCompilationDataImpl( // TODO think about more generic case: a fragment that can be compiled by an arbitrary compiler // what tasks should we create? should there be a generic task for that? internal class MetadataCompilationRegistry { - private val commonCompilationDataPerFragment = LinkedHashMap() - private val nativeCompilationDataPerFragment = LinkedHashMap() + private val commonCompilationDataPerFragment = LinkedHashMap() + private val nativeCompilationDataPerFragment = LinkedHashMap() - fun registerCommon(fragment: KotlinGradleFragment, compilationData: KotlinCommonFragmentMetadataCompilationDataImpl) { + fun registerCommon(fragment: KpmGradleFragment, compilationData: KotlinCommonFragmentMetadataCompilationDataImpl) { commonCompilationDataPerFragment.compute(fragment) { _, existing -> existing?.let { error("common compilation data for fragment $fragment already registered") } compilationData @@ -193,7 +193,7 @@ internal class MetadataCompilationRegistry { withAllCommonCallbacks.forEach { it.invoke(compilationData) } } - fun registerNative(fragment: KotlinGradleFragment, compilationData: KotlinNativeFragmentMetadataCompilationDataImpl) { + fun registerNative(fragment: KpmGradleFragment, compilationData: KotlinNativeFragmentMetadataCompilationDataImpl) { nativeCompilationDataPerFragment.compute(fragment) { _, existing -> existing?.let { error("native compilation data for fragment $fragment already registered") } compilationData @@ -201,7 +201,7 @@ internal class MetadataCompilationRegistry { withAllNativeCallbacks.forEach { it.invoke(compilationData) } } - fun getForFragmentOrNull(fragment: KotlinGradleFragment): AbstractKotlinFragmentMetadataCompilationData<*>? = + fun getForFragmentOrNull(fragment: KpmGradleFragment): AbstractKotlinFragmentMetadataCompilationData<*>? = listOf(commonCompilationDataPerFragment.getValue(fragment), nativeCompilationDataPerFragment.getValue(fragment)).singleOrNull { it.isActive } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinNativeVariant.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinNativeVariant.kt index 6615c030f7e..12813f57c58 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinNativeVariant.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinNativeVariant.kt @@ -12,18 +12,17 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.* import org.jetbrains.kotlin.gradle.plugin.mpp.NativeCompileOptions import org.jetbrains.kotlin.gradle.plugin.mpp.publishedConfigurationName import org.jetbrains.kotlin.konan.target.KonanTarget -import javax.inject.Inject -abstract class KotlinNativeVariantInternal( - containingModule: KotlinGradleModule, +abstract class KpmNativeVariantInternal( + containingModule: KpmGradleModule, fragmentName: String, val konanTarget: KonanTarget, dependencyConfigurations: KotlinFragmentDependencyConfigurations, compileDependencyConfiguration: Configuration, apiElementsConfiguration: Configuration, final override val hostSpecificMetadataElementsConfiguration: Configuration? -) : KotlinNativeVariant, - KotlinGradleVariantInternal( +) : KpmNativeVariant, + KpmGradleVariantInternal( containingModule = containingModule, fragmentName = fragmentName, dependencyConfigurations = dependencyConfigurations, @@ -44,11 +43,11 @@ abstract class KotlinNativeVariantInternal( override val compilationData by lazy { KotlinNativeVariantCompilationData(this) } } -class KotlinNativeVariantConstructor( +class KotlinNativeVariantConstructor( val konanTarget: KonanTarget, val variantClass: Class, private val constructor: ( - containingModule: KotlinGradleModule, + containingModule: KpmGradleModule, fragmentName: String, dependencyConfigurations: KotlinFragmentDependencyConfigurations, compileDependencyConfiguration: Configuration, @@ -57,7 +56,7 @@ class KotlinNativeVariantConstructor( ) -> T ) { operator fun invoke( - containingModule: KotlinGradleModule, + containingModule: KpmGradleModule, fragmentName: String, dependencyConfigurations: KotlinFragmentDependencyConfigurations, compileDependencyConfiguration: Configuration, @@ -78,7 +77,7 @@ interface KotlinNativeCompilationData : KotlinCompilati } internal class KotlinNativeVariantCompilationData( - val variant: KotlinNativeVariantInternal + val variant: KpmNativeVariantInternal ) : KotlinVariantCompilationDataInternal, KotlinNativeCompilationData { override val konanTarget: KonanTarget get() = variant.konanTarget @@ -89,7 +88,7 @@ internal class KotlinNativeVariantCompilationData( override val project: Project get() = variant.containingModule.project - override val owner: KotlinNativeVariant + override val owner: KpmNativeVariant get() = variant override val kotlinOptions: KotlinCommonOptions = NativeCompileOptions { variant.languageSettings } @@ -97,7 +96,7 @@ internal class KotlinNativeVariantCompilationData( internal class KotlinMappedNativeCompilationFactory( target: KotlinNativeTarget, - private val variantClass: Class + private val variantClass: Class ) : KotlinNativeCompilationFactory(target) { override fun create(name: String): KotlinNativeCompilation { val module = target.project.kpmModules.maybeCreate(name) @@ -108,4 +107,4 @@ internal class KotlinMappedNativeCompilationFactory( VariantMappedCompilationDetails(variant, target) ) } -} \ No newline at end of file +} diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinNativeVariantFactory.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinNativeVariantFactory.kt index ceeede1e964..9d31b121bb2 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinNativeVariantFactory.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinNativeVariantFactory.kt @@ -9,8 +9,8 @@ package org.jetbrains.kotlin.gradle.plugin.mpp.pm20 import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.FragmentNameDisambiguation -fun KotlinNativeVariantFactory( - module: KotlinGradleModule, +fun KotlinNativeVariantFactory( + module: KpmGradleModule, constructor: KotlinNativeVariantConstructor, config: KotlinNativeVariantConfig = KotlinNativeVariantConfig() ) = KotlinGradleFragmentFactory( @@ -18,7 +18,7 @@ fun KotlinNativeVariantFactory( fragmentConfigurator = KotlinNativeVariantConfigurator(config) ) -data class KotlinNativeVariantConfig( +data class KotlinNativeVariantConfig( val dependenciesConfigurationFactory: KotlinFragmentDependencyConfigurationsFactory = DefaultKotlinFragmentDependencyConfigurationsFactory, @@ -42,12 +42,12 @@ data class KotlinNativeVariantConfig( val sourceDirectoriesConfigurator: KotlinSourceDirectoriesConfigurator = DefaultKotlinSourceDirectoriesConfigurator, - val publicationConfigurator: KotlinPublicationConfigurator = + val publicationConfigurator: KotlinPublicationConfigurator = KotlinPublicationConfigurator.NativeVariantPublication ) -class KotlinNativeVariantInstantiator( - private val module: KotlinGradleModule, +class KotlinNativeVariantInstantiator( + private val module: KpmGradleModule, private val kotlinNativeVariantConstructor: KotlinNativeVariantConstructor, private val config: KotlinNativeVariantConfig @@ -76,7 +76,7 @@ class KotlinNativeVariantInstantiator( } } -class KotlinNativeVariantConfigurator( +class KotlinNativeVariantConfigurator( private val config: KotlinNativeVariantConfig ) : KotlinGradleFragmentFactory.FragmentConfigurator { diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinPublicationConfigurator.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinPublicationConfigurator.kt index 2bb9e7a31e3..566935787a1 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinPublicationConfigurator.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinPublicationConfigurator.kt @@ -5,20 +5,20 @@ package org.jetbrains.kotlin.gradle.plugin.mpp.pm20 -interface KotlinPublicationConfigurator : KotlinGradleFragmentFactory.FragmentConfigurator { +interface KotlinPublicationConfigurator : KotlinGradleFragmentFactory.FragmentConfigurator { - object NoPublication : KotlinPublicationConfigurator { - override fun configure(fragment: KotlinGradleVariant) = Unit + object NoPublication : KotlinPublicationConfigurator { + override fun configure(fragment: KpmGradleVariant) = Unit } - object SingleVariantPublication : KotlinPublicationConfigurator { - override fun configure(fragment: KotlinGradlePublishedVariantWithRuntime) { + object SingleVariantPublication : KotlinPublicationConfigurator { + override fun configure(fragment: KpmGradlePublishedVariantWithRuntime) { VariantPublishingConfigurator.get(fragment.project).configureSingleVariantPublication(fragment) } } - object NativeVariantPublication : KotlinPublicationConfigurator { - override fun configure(fragment: KotlinNativeVariantInternal) { + object NativeVariantPublication : KotlinPublicationConfigurator { + override fun configure(fragment: KpmNativeVariantInternal) { VariantPublishingConfigurator.get(fragment.project).configureNativeVariantPublication(fragment) } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinSourceArchiveTaskConfigurator.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinSourceArchiveTaskConfigurator.kt index d3d3a1581d9..a1982f7220d 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinSourceArchiveTaskConfigurator.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinSourceArchiveTaskConfigurator.kt @@ -9,12 +9,12 @@ import org.gradle.api.tasks.TaskProvider import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.unambiguousNameInProject import org.jetbrains.kotlin.gradle.plugin.mpp.sourcesJarTaskNamed -interface KotlinSourceArchiveTaskConfigurator { +interface KotlinSourceArchiveTaskConfigurator { fun registerSourceArchiveTask(variant: T): TaskProvider<*>? } -object DefaultKotlinSourceArchiveTaskConfigurator : KotlinSourceArchiveTaskConfigurator { - override fun registerSourceArchiveTask(variant: KotlinGradleVariant): TaskProvider<*> { +object DefaultKotlinSourceArchiveTaskConfigurator : KotlinSourceArchiveTaskConfigurator { + override fun registerSourceArchiveTask(variant: KpmGradleVariant): TaskProvider<*> { return sourcesJarTaskNamed( taskName = variant.sourceArchiveTaskName, project = variant.project, diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinSourceDirectoriesConfigurator.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinSourceDirectoriesConfigurator.kt index c9ddea5ed45..e7ba3fe769d 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinSourceDirectoriesConfigurator.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinSourceDirectoriesConfigurator.kt @@ -11,10 +11,10 @@ import org.jetbrains.kotlin.gradle.plugin.sources.kpm.FragmentMappedKotlinSource import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName import java.io.File -interface KotlinSourceDirectoriesConfigurator: KotlinGradleFragmentFactory.FragmentConfigurator +interface KotlinSourceDirectoriesConfigurator: KotlinGradleFragmentFactory.FragmentConfigurator -object DefaultKotlinSourceDirectoriesConfigurator : KotlinSourceDirectoriesConfigurator { - override fun configure(fragment: KotlinGradleFragment) { +object DefaultKotlinSourceDirectoriesConfigurator : KotlinSourceDirectoriesConfigurator { + override fun configure(fragment: KpmGradleFragment) { fragment.kotlinSourceRoots.srcDir( fragment.project.provider { defaultSourceFolder( @@ -25,7 +25,7 @@ object DefaultKotlinSourceDirectoriesConfigurator : KotlinSourceDirectoriesConfi ) } - private fun fragmentDirectoryName(fragment: KotlinGradleFragment): String { + private fun fragmentDirectoryName(fragment: KpmGradleFragment): String { val project = fragment.project val isModelMappingEnabled = project.multiplatformExtensionOrNull != null val kpmDefaultResult = lowerCamelCaseName(fragment.name, fragment.containingModule.name) @@ -40,7 +40,7 @@ object DefaultKotlinSourceDirectoriesConfigurator : KotlinSourceDirectoriesConfi } } - fun defaultSourceFolder(fragment: KotlinGradleFragment, type: String): File { + fun defaultSourceFolder(fragment: KpmGradleFragment, type: String): File { val fragmentDirectoryName = fragmentDirectoryName(fragment) return fragment.project.file("src/$fragmentDirectoryName/$type") } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KpmNativeVariants.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KpmNativeVariants.kt index 2b901111886..0e87ea41ba2 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KpmNativeVariants.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KpmNativeVariants.kt @@ -5,14 +5,14 @@ import org.jetbrains.kotlin.konan.target.KonanTarget import javax.inject.Inject // DO NOT EDIT MANUALLY! Generated by org.jetbrains.kotlin.generators.gradle.dsl.KpmNativeVariantCodegenKt -open class KotlinAndroidNativeX64Variant @Inject constructor( - containingModule: KotlinGradleModule, +open class KpmAndroidNativeX64Variant @Inject constructor( + containingModule: KpmGradleModule, fragmentName: String, dependencyConfigurations: KotlinFragmentDependencyConfigurations, compileDependencyConfiguration: Configuration, apiElementsConfiguration: Configuration, hostSpecificMetadataElementsConfiguration: Configuration? -) : KotlinNativeVariantInternal( +) : KpmNativeVariantInternal( containingModule = containingModule, fragmentName = fragmentName, konanTarget = KonanTarget.ANDROID_X64, @@ -23,19 +23,19 @@ open class KotlinAndroidNativeX64Variant @Inject constructor( ) { companion object { val constructor = KotlinNativeVariantConstructor( - KonanTarget.ANDROID_X64, KotlinAndroidNativeX64Variant::class.java, ::KotlinAndroidNativeX64Variant + KonanTarget.ANDROID_X64, KpmAndroidNativeX64Variant::class.java, ::KpmAndroidNativeX64Variant ) } } -open class KotlinAndroidNativeX86Variant @Inject constructor( - containingModule: KotlinGradleModule, +open class KpmAndroidNativeX86Variant @Inject constructor( + containingModule: KpmGradleModule, fragmentName: String, dependencyConfigurations: KotlinFragmentDependencyConfigurations, compileDependencyConfiguration: Configuration, apiElementsConfiguration: Configuration, hostSpecificMetadataElementsConfiguration: Configuration? -) : KotlinNativeVariantInternal( +) : KpmNativeVariantInternal( containingModule = containingModule, fragmentName = fragmentName, konanTarget = KonanTarget.ANDROID_X86, @@ -46,19 +46,19 @@ open class KotlinAndroidNativeX86Variant @Inject constructor( ) { companion object { val constructor = KotlinNativeVariantConstructor( - KonanTarget.ANDROID_X86, KotlinAndroidNativeX86Variant::class.java, ::KotlinAndroidNativeX86Variant + KonanTarget.ANDROID_X86, KpmAndroidNativeX86Variant::class.java, ::KpmAndroidNativeX86Variant ) } } -open class KotlinAndroidNativeArm32Variant @Inject constructor( - containingModule: KotlinGradleModule, +open class KpmAndroidNativeArm32Variant @Inject constructor( + containingModule: KpmGradleModule, fragmentName: String, dependencyConfigurations: KotlinFragmentDependencyConfigurations, compileDependencyConfiguration: Configuration, apiElementsConfiguration: Configuration, hostSpecificMetadataElementsConfiguration: Configuration? -) : KotlinNativeVariantInternal( +) : KpmNativeVariantInternal( containingModule = containingModule, fragmentName = fragmentName, konanTarget = KonanTarget.ANDROID_ARM32, @@ -69,19 +69,19 @@ open class KotlinAndroidNativeArm32Variant @Inject constructor( ) { companion object { val constructor = KotlinNativeVariantConstructor( - KonanTarget.ANDROID_ARM32, KotlinAndroidNativeArm32Variant::class.java, ::KotlinAndroidNativeArm32Variant + KonanTarget.ANDROID_ARM32, KpmAndroidNativeArm32Variant::class.java, ::KpmAndroidNativeArm32Variant ) } } -open class KotlinAndroidNativeArm64Variant @Inject constructor( - containingModule: KotlinGradleModule, +open class KpmAndroidNativeArm64Variant @Inject constructor( + containingModule: KpmGradleModule, fragmentName: String, dependencyConfigurations: KotlinFragmentDependencyConfigurations, compileDependencyConfiguration: Configuration, apiElementsConfiguration: Configuration, hostSpecificMetadataElementsConfiguration: Configuration? -) : KotlinNativeVariantInternal( +) : KpmNativeVariantInternal( containingModule = containingModule, fragmentName = fragmentName, konanTarget = KonanTarget.ANDROID_ARM64, @@ -92,19 +92,19 @@ open class KotlinAndroidNativeArm64Variant @Inject constructor( ) { companion object { val constructor = KotlinNativeVariantConstructor( - KonanTarget.ANDROID_ARM64, KotlinAndroidNativeArm64Variant::class.java, ::KotlinAndroidNativeArm64Variant + KonanTarget.ANDROID_ARM64, KpmAndroidNativeArm64Variant::class.java, ::KpmAndroidNativeArm64Variant ) } } -open class KotlinIosArm32Variant @Inject constructor( - containingModule: KotlinGradleModule, +open class KpmIosArm32Variant @Inject constructor( + containingModule: KpmGradleModule, fragmentName: String, dependencyConfigurations: KotlinFragmentDependencyConfigurations, compileDependencyConfiguration: Configuration, apiElementsConfiguration: Configuration, hostSpecificMetadataElementsConfiguration: Configuration? -) : KotlinNativeVariantInternal( +) : KpmNativeVariantInternal( containingModule = containingModule, fragmentName = fragmentName, konanTarget = KonanTarget.IOS_ARM32, @@ -115,19 +115,19 @@ open class KotlinIosArm32Variant @Inject constructor( ) { companion object { val constructor = KotlinNativeVariantConstructor( - KonanTarget.IOS_ARM32, KotlinIosArm32Variant::class.java, ::KotlinIosArm32Variant + KonanTarget.IOS_ARM32, KpmIosArm32Variant::class.java, ::KpmIosArm32Variant ) } } -open class KotlinIosArm64Variant @Inject constructor( - containingModule: KotlinGradleModule, +open class KpmIosArm64Variant @Inject constructor( + containingModule: KpmGradleModule, fragmentName: String, dependencyConfigurations: KotlinFragmentDependencyConfigurations, compileDependencyConfiguration: Configuration, apiElementsConfiguration: Configuration, hostSpecificMetadataElementsConfiguration: Configuration? -) : KotlinNativeVariantInternal( +) : KpmNativeVariantInternal( containingModule = containingModule, fragmentName = fragmentName, konanTarget = KonanTarget.IOS_ARM64, @@ -138,19 +138,19 @@ open class KotlinIosArm64Variant @Inject constructor( ) { companion object { val constructor = KotlinNativeVariantConstructor( - KonanTarget.IOS_ARM64, KotlinIosArm64Variant::class.java, ::KotlinIosArm64Variant + KonanTarget.IOS_ARM64, KpmIosArm64Variant::class.java, ::KpmIosArm64Variant ) } } -open class KotlinIosX64Variant @Inject constructor( - containingModule: KotlinGradleModule, +open class KpmIosX64Variant @Inject constructor( + containingModule: KpmGradleModule, fragmentName: String, dependencyConfigurations: KotlinFragmentDependencyConfigurations, compileDependencyConfiguration: Configuration, apiElementsConfiguration: Configuration, hostSpecificMetadataElementsConfiguration: Configuration? -) : KotlinNativeVariantInternal( +) : KpmNativeVariantInternal( containingModule = containingModule, fragmentName = fragmentName, konanTarget = KonanTarget.IOS_X64, @@ -161,19 +161,19 @@ open class KotlinIosX64Variant @Inject constructor( ) { companion object { val constructor = KotlinNativeVariantConstructor( - KonanTarget.IOS_X64, KotlinIosX64Variant::class.java, ::KotlinIosX64Variant + KonanTarget.IOS_X64, KpmIosX64Variant::class.java, ::KpmIosX64Variant ) } } -open class KotlinIosSimulatorArm64Variant @Inject constructor( - containingModule: KotlinGradleModule, +open class KpmIosSimulatorArm64Variant @Inject constructor( + containingModule: KpmGradleModule, fragmentName: String, dependencyConfigurations: KotlinFragmentDependencyConfigurations, compileDependencyConfiguration: Configuration, apiElementsConfiguration: Configuration, hostSpecificMetadataElementsConfiguration: Configuration? -) : KotlinNativeVariantInternal( +) : KpmNativeVariantInternal( containingModule = containingModule, fragmentName = fragmentName, konanTarget = KonanTarget.IOS_SIMULATOR_ARM64, @@ -184,19 +184,19 @@ open class KotlinIosSimulatorArm64Variant @Inject constructor( ) { companion object { val constructor = KotlinNativeVariantConstructor( - KonanTarget.IOS_SIMULATOR_ARM64, KotlinIosSimulatorArm64Variant::class.java, ::KotlinIosSimulatorArm64Variant + KonanTarget.IOS_SIMULATOR_ARM64, KpmIosSimulatorArm64Variant::class.java, ::KpmIosSimulatorArm64Variant ) } } -open class KotlinWatchosArm32Variant @Inject constructor( - containingModule: KotlinGradleModule, +open class KpmWatchosArm32Variant @Inject constructor( + containingModule: KpmGradleModule, fragmentName: String, dependencyConfigurations: KotlinFragmentDependencyConfigurations, compileDependencyConfiguration: Configuration, apiElementsConfiguration: Configuration, hostSpecificMetadataElementsConfiguration: Configuration? -) : KotlinNativeVariantInternal( +) : KpmNativeVariantInternal( containingModule = containingModule, fragmentName = fragmentName, konanTarget = KonanTarget.WATCHOS_ARM32, @@ -207,19 +207,19 @@ open class KotlinWatchosArm32Variant @Inject constructor( ) { companion object { val constructor = KotlinNativeVariantConstructor( - KonanTarget.WATCHOS_ARM32, KotlinWatchosArm32Variant::class.java, ::KotlinWatchosArm32Variant + KonanTarget.WATCHOS_ARM32, KpmWatchosArm32Variant::class.java, ::KpmWatchosArm32Variant ) } } -open class KotlinWatchosArm64Variant @Inject constructor( - containingModule: KotlinGradleModule, +open class KpmWatchosArm64Variant @Inject constructor( + containingModule: KpmGradleModule, fragmentName: String, dependencyConfigurations: KotlinFragmentDependencyConfigurations, compileDependencyConfiguration: Configuration, apiElementsConfiguration: Configuration, hostSpecificMetadataElementsConfiguration: Configuration? -) : KotlinNativeVariantInternal( +) : KpmNativeVariantInternal( containingModule = containingModule, fragmentName = fragmentName, konanTarget = KonanTarget.WATCHOS_ARM64, @@ -230,19 +230,19 @@ open class KotlinWatchosArm64Variant @Inject constructor( ) { companion object { val constructor = KotlinNativeVariantConstructor( - KonanTarget.WATCHOS_ARM64, KotlinWatchosArm64Variant::class.java, ::KotlinWatchosArm64Variant + KonanTarget.WATCHOS_ARM64, KpmWatchosArm64Variant::class.java, ::KpmWatchosArm64Variant ) } } -open class KotlinWatchosX86Variant @Inject constructor( - containingModule: KotlinGradleModule, +open class KpmWatchosX86Variant @Inject constructor( + containingModule: KpmGradleModule, fragmentName: String, dependencyConfigurations: KotlinFragmentDependencyConfigurations, compileDependencyConfiguration: Configuration, apiElementsConfiguration: Configuration, hostSpecificMetadataElementsConfiguration: Configuration? -) : KotlinNativeVariantInternal( +) : KpmNativeVariantInternal( containingModule = containingModule, fragmentName = fragmentName, konanTarget = KonanTarget.WATCHOS_X86, @@ -253,19 +253,19 @@ open class KotlinWatchosX86Variant @Inject constructor( ) { companion object { val constructor = KotlinNativeVariantConstructor( - KonanTarget.WATCHOS_X86, KotlinWatchosX86Variant::class.java, ::KotlinWatchosX86Variant + KonanTarget.WATCHOS_X86, KpmWatchosX86Variant::class.java, ::KpmWatchosX86Variant ) } } -open class KotlinWatchosX64Variant @Inject constructor( - containingModule: KotlinGradleModule, +open class KpmWatchosX64Variant @Inject constructor( + containingModule: KpmGradleModule, fragmentName: String, dependencyConfigurations: KotlinFragmentDependencyConfigurations, compileDependencyConfiguration: Configuration, apiElementsConfiguration: Configuration, hostSpecificMetadataElementsConfiguration: Configuration? -) : KotlinNativeVariantInternal( +) : KpmNativeVariantInternal( containingModule = containingModule, fragmentName = fragmentName, konanTarget = KonanTarget.WATCHOS_X64, @@ -276,19 +276,19 @@ open class KotlinWatchosX64Variant @Inject constructor( ) { companion object { val constructor = KotlinNativeVariantConstructor( - KonanTarget.WATCHOS_X64, KotlinWatchosX64Variant::class.java, ::KotlinWatchosX64Variant + KonanTarget.WATCHOS_X64, KpmWatchosX64Variant::class.java, ::KpmWatchosX64Variant ) } } -open class KotlinWatchosSimulatorArm64Variant @Inject constructor( - containingModule: KotlinGradleModule, +open class KpmWatchosSimulatorArm64Variant @Inject constructor( + containingModule: KpmGradleModule, fragmentName: String, dependencyConfigurations: KotlinFragmentDependencyConfigurations, compileDependencyConfiguration: Configuration, apiElementsConfiguration: Configuration, hostSpecificMetadataElementsConfiguration: Configuration? -) : KotlinNativeVariantInternal( +) : KpmNativeVariantInternal( containingModule = containingModule, fragmentName = fragmentName, konanTarget = KonanTarget.WATCHOS_SIMULATOR_ARM64, @@ -299,19 +299,19 @@ open class KotlinWatchosSimulatorArm64Variant @Inject constructor( ) { companion object { val constructor = KotlinNativeVariantConstructor( - KonanTarget.WATCHOS_SIMULATOR_ARM64, KotlinWatchosSimulatorArm64Variant::class.java, ::KotlinWatchosSimulatorArm64Variant + KonanTarget.WATCHOS_SIMULATOR_ARM64, KpmWatchosSimulatorArm64Variant::class.java, ::KpmWatchosSimulatorArm64Variant ) } } -open class KotlinTvosArm64Variant @Inject constructor( - containingModule: KotlinGradleModule, +open class KpmTvosArm64Variant @Inject constructor( + containingModule: KpmGradleModule, fragmentName: String, dependencyConfigurations: KotlinFragmentDependencyConfigurations, compileDependencyConfiguration: Configuration, apiElementsConfiguration: Configuration, hostSpecificMetadataElementsConfiguration: Configuration? -) : KotlinNativeVariantInternal( +) : KpmNativeVariantInternal( containingModule = containingModule, fragmentName = fragmentName, konanTarget = KonanTarget.TVOS_ARM64, @@ -322,19 +322,19 @@ open class KotlinTvosArm64Variant @Inject constructor( ) { companion object { val constructor = KotlinNativeVariantConstructor( - KonanTarget.TVOS_ARM64, KotlinTvosArm64Variant::class.java, ::KotlinTvosArm64Variant + KonanTarget.TVOS_ARM64, KpmTvosArm64Variant::class.java, ::KpmTvosArm64Variant ) } } -open class KotlinTvosX64Variant @Inject constructor( - containingModule: KotlinGradleModule, +open class KpmTvosX64Variant @Inject constructor( + containingModule: KpmGradleModule, fragmentName: String, dependencyConfigurations: KotlinFragmentDependencyConfigurations, compileDependencyConfiguration: Configuration, apiElementsConfiguration: Configuration, hostSpecificMetadataElementsConfiguration: Configuration? -) : KotlinNativeVariantInternal( +) : KpmNativeVariantInternal( containingModule = containingModule, fragmentName = fragmentName, konanTarget = KonanTarget.TVOS_X64, @@ -345,19 +345,19 @@ open class KotlinTvosX64Variant @Inject constructor( ) { companion object { val constructor = KotlinNativeVariantConstructor( - KonanTarget.TVOS_X64, KotlinTvosX64Variant::class.java, ::KotlinTvosX64Variant + KonanTarget.TVOS_X64, KpmTvosX64Variant::class.java, ::KpmTvosX64Variant ) } } -open class KotlinTvosSimulatorArm64Variant @Inject constructor( - containingModule: KotlinGradleModule, +open class KpmTvosSimulatorArm64Variant @Inject constructor( + containingModule: KpmGradleModule, fragmentName: String, dependencyConfigurations: KotlinFragmentDependencyConfigurations, compileDependencyConfiguration: Configuration, apiElementsConfiguration: Configuration, hostSpecificMetadataElementsConfiguration: Configuration? -) : KotlinNativeVariantInternal( +) : KpmNativeVariantInternal( containingModule = containingModule, fragmentName = fragmentName, konanTarget = KonanTarget.TVOS_SIMULATOR_ARM64, @@ -368,19 +368,19 @@ open class KotlinTvosSimulatorArm64Variant @Inject constructor( ) { companion object { val constructor = KotlinNativeVariantConstructor( - KonanTarget.TVOS_SIMULATOR_ARM64, KotlinTvosSimulatorArm64Variant::class.java, ::KotlinTvosSimulatorArm64Variant + KonanTarget.TVOS_SIMULATOR_ARM64, KpmTvosSimulatorArm64Variant::class.java, ::KpmTvosSimulatorArm64Variant ) } } -open class KotlinLinuxX64Variant @Inject constructor( - containingModule: KotlinGradleModule, +open class KpmLinuxX64Variant @Inject constructor( + containingModule: KpmGradleModule, fragmentName: String, dependencyConfigurations: KotlinFragmentDependencyConfigurations, compileDependencyConfiguration: Configuration, apiElementsConfiguration: Configuration, hostSpecificMetadataElementsConfiguration: Configuration? -) : KotlinNativeVariantInternal( +) : KpmNativeVariantInternal( containingModule = containingModule, fragmentName = fragmentName, konanTarget = KonanTarget.LINUX_X64, @@ -391,19 +391,19 @@ open class KotlinLinuxX64Variant @Inject constructor( ) { companion object { val constructor = KotlinNativeVariantConstructor( - KonanTarget.LINUX_X64, KotlinLinuxX64Variant::class.java, ::KotlinLinuxX64Variant + KonanTarget.LINUX_X64, KpmLinuxX64Variant::class.java, ::KpmLinuxX64Variant ) } } -open class KotlinMingwX86Variant @Inject constructor( - containingModule: KotlinGradleModule, +open class KpmMingwX86Variant @Inject constructor( + containingModule: KpmGradleModule, fragmentName: String, dependencyConfigurations: KotlinFragmentDependencyConfigurations, compileDependencyConfiguration: Configuration, apiElementsConfiguration: Configuration, hostSpecificMetadataElementsConfiguration: Configuration? -) : KotlinNativeVariantInternal( +) : KpmNativeVariantInternal( containingModule = containingModule, fragmentName = fragmentName, konanTarget = KonanTarget.MINGW_X86, @@ -414,19 +414,19 @@ open class KotlinMingwX86Variant @Inject constructor( ) { companion object { val constructor = KotlinNativeVariantConstructor( - KonanTarget.MINGW_X86, KotlinMingwX86Variant::class.java, ::KotlinMingwX86Variant + KonanTarget.MINGW_X86, KpmMingwX86Variant::class.java, ::KpmMingwX86Variant ) } } -open class KotlinMingwX64Variant @Inject constructor( - containingModule: KotlinGradleModule, +open class KpmMingwX64Variant @Inject constructor( + containingModule: KpmGradleModule, fragmentName: String, dependencyConfigurations: KotlinFragmentDependencyConfigurations, compileDependencyConfiguration: Configuration, apiElementsConfiguration: Configuration, hostSpecificMetadataElementsConfiguration: Configuration? -) : KotlinNativeVariantInternal( +) : KpmNativeVariantInternal( containingModule = containingModule, fragmentName = fragmentName, konanTarget = KonanTarget.MINGW_X64, @@ -437,19 +437,19 @@ open class KotlinMingwX64Variant @Inject constructor( ) { companion object { val constructor = KotlinNativeVariantConstructor( - KonanTarget.MINGW_X64, KotlinMingwX64Variant::class.java, ::KotlinMingwX64Variant + KonanTarget.MINGW_X64, KpmMingwX64Variant::class.java, ::KpmMingwX64Variant ) } } -open class KotlinMacosX64Variant @Inject constructor( - containingModule: KotlinGradleModule, +open class KpmMacosX64Variant @Inject constructor( + containingModule: KpmGradleModule, fragmentName: String, dependencyConfigurations: KotlinFragmentDependencyConfigurations, compileDependencyConfiguration: Configuration, apiElementsConfiguration: Configuration, hostSpecificMetadataElementsConfiguration: Configuration? -) : KotlinNativeVariantInternal( +) : KpmNativeVariantInternal( containingModule = containingModule, fragmentName = fragmentName, konanTarget = KonanTarget.MACOS_X64, @@ -460,19 +460,19 @@ open class KotlinMacosX64Variant @Inject constructor( ) { companion object { val constructor = KotlinNativeVariantConstructor( - KonanTarget.MACOS_X64, KotlinMacosX64Variant::class.java, ::KotlinMacosX64Variant + KonanTarget.MACOS_X64, KpmMacosX64Variant::class.java, ::KpmMacosX64Variant ) } } -open class KotlinMacosArm64Variant @Inject constructor( - containingModule: KotlinGradleModule, +open class KpmMacosArm64Variant @Inject constructor( + containingModule: KpmGradleModule, fragmentName: String, dependencyConfigurations: KotlinFragmentDependencyConfigurations, compileDependencyConfiguration: Configuration, apiElementsConfiguration: Configuration, hostSpecificMetadataElementsConfiguration: Configuration? -) : KotlinNativeVariantInternal( +) : KpmNativeVariantInternal( containingModule = containingModule, fragmentName = fragmentName, konanTarget = KonanTarget.MACOS_ARM64, @@ -483,19 +483,19 @@ open class KotlinMacosArm64Variant @Inject constructor( ) { companion object { val constructor = KotlinNativeVariantConstructor( - KonanTarget.MACOS_ARM64, KotlinMacosArm64Variant::class.java, ::KotlinMacosArm64Variant + KonanTarget.MACOS_ARM64, KpmMacosArm64Variant::class.java, ::KpmMacosArm64Variant ) } } -open class KotlinLinuxArm64Variant @Inject constructor( - containingModule: KotlinGradleModule, +open class KpmLinuxArm64Variant @Inject constructor( + containingModule: KpmGradleModule, fragmentName: String, dependencyConfigurations: KotlinFragmentDependencyConfigurations, compileDependencyConfiguration: Configuration, apiElementsConfiguration: Configuration, hostSpecificMetadataElementsConfiguration: Configuration? -) : KotlinNativeVariantInternal( +) : KpmNativeVariantInternal( containingModule = containingModule, fragmentName = fragmentName, konanTarget = KonanTarget.LINUX_ARM64, @@ -506,19 +506,19 @@ open class KotlinLinuxArm64Variant @Inject constructor( ) { companion object { val constructor = KotlinNativeVariantConstructor( - KonanTarget.LINUX_ARM64, KotlinLinuxArm64Variant::class.java, ::KotlinLinuxArm64Variant + KonanTarget.LINUX_ARM64, KpmLinuxArm64Variant::class.java, ::KpmLinuxArm64Variant ) } } -open class KotlinLinuxArm32HfpVariant @Inject constructor( - containingModule: KotlinGradleModule, +open class KpmLinuxArm32HfpVariant @Inject constructor( + containingModule: KpmGradleModule, fragmentName: String, dependencyConfigurations: KotlinFragmentDependencyConfigurations, compileDependencyConfiguration: Configuration, apiElementsConfiguration: Configuration, hostSpecificMetadataElementsConfiguration: Configuration? -) : KotlinNativeVariantInternal( +) : KpmNativeVariantInternal( containingModule = containingModule, fragmentName = fragmentName, konanTarget = KonanTarget.LINUX_ARM32_HFP, @@ -529,19 +529,19 @@ open class KotlinLinuxArm32HfpVariant @Inject constructor( ) { companion object { val constructor = KotlinNativeVariantConstructor( - KonanTarget.LINUX_ARM32_HFP, KotlinLinuxArm32HfpVariant::class.java, ::KotlinLinuxArm32HfpVariant + KonanTarget.LINUX_ARM32_HFP, KpmLinuxArm32HfpVariant::class.java, ::KpmLinuxArm32HfpVariant ) } } -open class KotlinLinuxMips32Variant @Inject constructor( - containingModule: KotlinGradleModule, +open class KpmLinuxMips32Variant @Inject constructor( + containingModule: KpmGradleModule, fragmentName: String, dependencyConfigurations: KotlinFragmentDependencyConfigurations, compileDependencyConfiguration: Configuration, apiElementsConfiguration: Configuration, hostSpecificMetadataElementsConfiguration: Configuration? -) : KotlinNativeVariantInternal( +) : KpmNativeVariantInternal( containingModule = containingModule, fragmentName = fragmentName, konanTarget = KonanTarget.LINUX_MIPS32, @@ -552,19 +552,19 @@ open class KotlinLinuxMips32Variant @Inject constructor( ) { companion object { val constructor = KotlinNativeVariantConstructor( - KonanTarget.LINUX_MIPS32, KotlinLinuxMips32Variant::class.java, ::KotlinLinuxMips32Variant + KonanTarget.LINUX_MIPS32, KpmLinuxMips32Variant::class.java, ::KpmLinuxMips32Variant ) } } -open class KotlinLinuxMipsel32Variant @Inject constructor( - containingModule: KotlinGradleModule, +open class KpmLinuxMipsel32Variant @Inject constructor( + containingModule: KpmGradleModule, fragmentName: String, dependencyConfigurations: KotlinFragmentDependencyConfigurations, compileDependencyConfiguration: Configuration, apiElementsConfiguration: Configuration, hostSpecificMetadataElementsConfiguration: Configuration? -) : KotlinNativeVariantInternal( +) : KpmNativeVariantInternal( containingModule = containingModule, fragmentName = fragmentName, konanTarget = KonanTarget.LINUX_MIPSEL32, @@ -575,19 +575,19 @@ open class KotlinLinuxMipsel32Variant @Inject constructor( ) { companion object { val constructor = KotlinNativeVariantConstructor( - KonanTarget.LINUX_MIPSEL32, KotlinLinuxMipsel32Variant::class.java, ::KotlinLinuxMipsel32Variant + KonanTarget.LINUX_MIPSEL32, KpmLinuxMipsel32Variant::class.java, ::KpmLinuxMipsel32Variant ) } } -open class KotlinWasm32Variant @Inject constructor( - containingModule: KotlinGradleModule, +open class KpmWasm32Variant @Inject constructor( + containingModule: KpmGradleModule, fragmentName: String, dependencyConfigurations: KotlinFragmentDependencyConfigurations, compileDependencyConfiguration: Configuration, apiElementsConfiguration: Configuration, hostSpecificMetadataElementsConfiguration: Configuration? -) : KotlinNativeVariantInternal( +) : KpmNativeVariantInternal( containingModule = containingModule, fragmentName = fragmentName, konanTarget = KonanTarget.WASM32, @@ -598,66 +598,66 @@ open class KotlinWasm32Variant @Inject constructor( ) { companion object { val constructor = KotlinNativeVariantConstructor( - KonanTarget.WASM32, KotlinWasm32Variant::class.java, ::KotlinWasm32Variant + KonanTarget.WASM32, KpmWasm32Variant::class.java, ::KpmWasm32Variant ) } } internal val allKpmNativeVariantConstructors = listOf( - KotlinAndroidNativeX64Variant.constructor, - KotlinAndroidNativeX86Variant.constructor, - KotlinAndroidNativeArm32Variant.constructor, - KotlinAndroidNativeArm64Variant.constructor, - KotlinIosArm32Variant.constructor, - KotlinIosArm64Variant.constructor, - KotlinIosX64Variant.constructor, - KotlinIosSimulatorArm64Variant.constructor, - KotlinWatchosArm32Variant.constructor, - KotlinWatchosArm64Variant.constructor, - KotlinWatchosX86Variant.constructor, - KotlinWatchosX64Variant.constructor, - KotlinWatchosSimulatorArm64Variant.constructor, - KotlinTvosArm64Variant.constructor, - KotlinTvosX64Variant.constructor, - KotlinTvosSimulatorArm64Variant.constructor, - KotlinLinuxX64Variant.constructor, - KotlinMingwX86Variant.constructor, - KotlinMingwX64Variant.constructor, - KotlinMacosX64Variant.constructor, - KotlinMacosArm64Variant.constructor, - KotlinLinuxArm64Variant.constructor, - KotlinLinuxArm32HfpVariant.constructor, - KotlinLinuxMips32Variant.constructor, - KotlinLinuxMipsel32Variant.constructor, - KotlinWasm32Variant.constructor + KpmAndroidNativeX64Variant.constructor, + KpmAndroidNativeX86Variant.constructor, + KpmAndroidNativeArm32Variant.constructor, + KpmAndroidNativeArm64Variant.constructor, + KpmIosArm32Variant.constructor, + KpmIosArm64Variant.constructor, + KpmIosX64Variant.constructor, + KpmIosSimulatorArm64Variant.constructor, + KpmWatchosArm32Variant.constructor, + KpmWatchosArm64Variant.constructor, + KpmWatchosX86Variant.constructor, + KpmWatchosX64Variant.constructor, + KpmWatchosSimulatorArm64Variant.constructor, + KpmTvosArm64Variant.constructor, + KpmTvosX64Variant.constructor, + KpmTvosSimulatorArm64Variant.constructor, + KpmLinuxX64Variant.constructor, + KpmMingwX86Variant.constructor, + KpmMingwX64Variant.constructor, + KpmMacosX64Variant.constructor, + KpmMacosArm64Variant.constructor, + KpmLinuxArm64Variant.constructor, + KpmLinuxArm32HfpVariant.constructor, + KpmLinuxMips32Variant.constructor, + KpmLinuxMipsel32Variant.constructor, + KpmWasm32Variant.constructor ) -internal fun kpmNativeVariantClass(konanTarget: KonanTarget): Class? = when (konanTarget) { - KonanTarget.ANDROID_X64 -> KotlinAndroidNativeX64Variant::class.java - KonanTarget.ANDROID_X86 -> KotlinAndroidNativeX86Variant::class.java - KonanTarget.ANDROID_ARM32 -> KotlinAndroidNativeArm32Variant::class.java - KonanTarget.ANDROID_ARM64 -> KotlinAndroidNativeArm64Variant::class.java - KonanTarget.IOS_ARM32 -> KotlinIosArm32Variant::class.java - KonanTarget.IOS_ARM64 -> KotlinIosArm64Variant::class.java - KonanTarget.IOS_X64 -> KotlinIosX64Variant::class.java - KonanTarget.IOS_SIMULATOR_ARM64 -> KotlinIosSimulatorArm64Variant::class.java - KonanTarget.WATCHOS_ARM32 -> KotlinWatchosArm32Variant::class.java - KonanTarget.WATCHOS_ARM64 -> KotlinWatchosArm64Variant::class.java - KonanTarget.WATCHOS_X86 -> KotlinWatchosX86Variant::class.java - KonanTarget.WATCHOS_X64 -> KotlinWatchosX64Variant::class.java - KonanTarget.WATCHOS_SIMULATOR_ARM64 -> KotlinWatchosSimulatorArm64Variant::class.java - KonanTarget.TVOS_ARM64 -> KotlinTvosArm64Variant::class.java - KonanTarget.TVOS_X64 -> KotlinTvosX64Variant::class.java - KonanTarget.TVOS_SIMULATOR_ARM64 -> KotlinTvosSimulatorArm64Variant::class.java - KonanTarget.LINUX_X64 -> KotlinLinuxX64Variant::class.java - KonanTarget.MINGW_X86 -> KotlinMingwX86Variant::class.java - KonanTarget.MINGW_X64 -> KotlinMingwX64Variant::class.java - KonanTarget.MACOS_X64 -> KotlinMacosX64Variant::class.java - KonanTarget.MACOS_ARM64 -> KotlinMacosArm64Variant::class.java - KonanTarget.LINUX_ARM64 -> KotlinLinuxArm64Variant::class.java - KonanTarget.LINUX_ARM32_HFP -> KotlinLinuxArm32HfpVariant::class.java - KonanTarget.LINUX_MIPS32 -> KotlinLinuxMips32Variant::class.java - KonanTarget.LINUX_MIPSEL32 -> KotlinLinuxMipsel32Variant::class.java - KonanTarget.WASM32 -> KotlinWasm32Variant::class.java +internal fun kpmNativeVariantClass(konanTarget: KonanTarget): Class? = when (konanTarget) { + KonanTarget.ANDROID_X64 -> KpmAndroidNativeX64Variant::class.java + KonanTarget.ANDROID_X86 -> KpmAndroidNativeX86Variant::class.java + KonanTarget.ANDROID_ARM32 -> KpmAndroidNativeArm32Variant::class.java + KonanTarget.ANDROID_ARM64 -> KpmAndroidNativeArm64Variant::class.java + KonanTarget.IOS_ARM32 -> KpmIosArm32Variant::class.java + KonanTarget.IOS_ARM64 -> KpmIosArm64Variant::class.java + KonanTarget.IOS_X64 -> KpmIosX64Variant::class.java + KonanTarget.IOS_SIMULATOR_ARM64 -> KpmIosSimulatorArm64Variant::class.java + KonanTarget.WATCHOS_ARM32 -> KpmWatchosArm32Variant::class.java + KonanTarget.WATCHOS_ARM64 -> KpmWatchosArm64Variant::class.java + KonanTarget.WATCHOS_X86 -> KpmWatchosX86Variant::class.java + KonanTarget.WATCHOS_X64 -> KpmWatchosX64Variant::class.java + KonanTarget.WATCHOS_SIMULATOR_ARM64 -> KpmWatchosSimulatorArm64Variant::class.java + KonanTarget.TVOS_ARM64 -> KpmTvosArm64Variant::class.java + KonanTarget.TVOS_X64 -> KpmTvosX64Variant::class.java + KonanTarget.TVOS_SIMULATOR_ARM64 -> KpmTvosSimulatorArm64Variant::class.java + KonanTarget.LINUX_X64 -> KpmLinuxX64Variant::class.java + KonanTarget.MINGW_X86 -> KpmMingwX86Variant::class.java + KonanTarget.MINGW_X64 -> KpmMingwX64Variant::class.java + KonanTarget.MACOS_X64 -> KpmMacosX64Variant::class.java + KonanTarget.MACOS_ARM64 -> KpmMacosArm64Variant::class.java + KonanTarget.LINUX_ARM64 -> KpmLinuxArm64Variant::class.java + KonanTarget.LINUX_ARM32_HFP -> KpmLinuxArm32HfpVariant::class.java + KonanTarget.LINUX_MIPS32 -> KpmLinuxMips32Variant::class.java + KonanTarget.LINUX_MIPSEL32 -> KpmLinuxMipsel32Variant::class.java + KonanTarget.WASM32 -> KpmWasm32Variant::class.java else -> null -} \ No newline at end of file +} diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KpmProjectModelContainer.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KpmProjectModelContainer.kt index 3e3974b04e6..96fc4ca10e3 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KpmProjectModelContainer.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KpmProjectModelContainer.kt @@ -11,11 +11,11 @@ import org.gradle.api.publish.maven.MavenPublication import org.jetbrains.kotlin.gradle.dsl.KotlinProjectExtension import org.jetbrains.kotlin.gradle.dsl.topLevelExtensionOrNull import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider -import org.jetbrains.kotlin.project.model.KotlinModuleIdentifier +import org.jetbrains.kotlin.project.model.KpmModuleIdentifier internal interface KpmGradleProjectModelContainer { - val modules: NamedDomainObjectContainer - val metadataCompilationRegistryByModuleId: MutableMap + val modules: NamedDomainObjectContainer + val metadataCompilationRegistryByModuleId: MutableMap val rootPublication: MavenPublication? } @@ -32,15 +32,15 @@ internal val Project.kpmModelContainerOrNull: KpmGradleProjectModelContainer? internal val Project.hasKpmModel: Boolean get() = kpmModelContainerOrNull != null -internal val Project.kpmModules: NamedDomainObjectContainer +internal val Project.kpmModules: NamedDomainObjectContainer get() = kpmModelContainer.modules -internal val Project.metadataCompilationRegistryByModuleId: MutableMap +internal val Project.metadataCompilationRegistryByModuleId: MutableMap get() = kpmModelContainer.metadataCompilationRegistryByModuleId internal class DefaultKpmGradleProjectModelContainer( - override val modules: NamedDomainObjectContainer, - override val metadataCompilationRegistryByModuleId: MutableMap, + override val modules: NamedDomainObjectContainer, + override val metadataCompilationRegistryByModuleId: MutableMap, ) : KpmGradleProjectModelContainer { override var rootPublication: MavenPublication? = null @@ -49,10 +49,10 @@ internal class DefaultKpmGradleProjectModelContainer( return DefaultKpmGradleProjectModelContainer(createKpmModulesContainer(project), mutableMapOf()) } - private fun createKpmModulesContainer(project: Project): NamedDomainObjectContainer = + private fun createKpmModulesContainer(project: Project): NamedDomainObjectContainer = project.objects.domainObjectContainer( - KotlinGradleModule::class.java, + KpmGradleModule::class.java, KotlinGradleModuleFactory(project) ) } -} \ No newline at end of file +} diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/LegacyMappedVariant.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/LegacyMappedVariant.kt index 183af0fdfb2..79db706c23b 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/LegacyMappedVariant.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/LegacyMappedVariant.kt @@ -25,20 +25,19 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.publishedConfigurationName import org.jetbrains.kotlin.gradle.plugin.sources.kpm.FragmentMappedKotlinSourceSet import org.jetbrains.kotlin.gradle.utils.filesProvider import org.jetbrains.kotlin.project.model.KotlinAttributeKey -import org.jetbrains.kotlin.project.model.KotlinModuleDependency -import org.jetbrains.kotlin.project.model.KotlinModuleFragment +import org.jetbrains.kotlin.project.model.KpmModuleDependency import org.jetbrains.kotlin.tooling.core.MutableExtras import org.jetbrains.kotlin.tooling.core.mutableExtrasOf internal open class LegacyMappedVariant( internal val compilation: KotlinCompilation<*>, -) : KotlinGradleVariant { +) : KpmGradleVariant { override fun toString(): String = "variant mapped to $compilation" private val fragmentForDefaultSourceSet = (compilation.defaultSourceSet as FragmentMappedKotlinSourceSet).underlyingFragment - override val containingModule: KotlinGradleModule get() = fragmentForDefaultSourceSet.containingModule + override val containingModule: KpmGradleModule get() = fragmentForDefaultSourceSet.containingModule override val platformType: KotlinPlatformType get() = compilation.platformType @@ -90,11 +89,11 @@ internal open class LegacyMappedVariant( override val extras: MutableExtras = mutableExtrasOf() - override fun refines(other: KotlinGradleFragment) { + override fun refines(other: KpmGradleFragment) { fragmentForDefaultSourceSet.refines(other) } - override fun refines(other: NamedDomainObjectProvider) { + override fun refines(other: NamedDomainObjectProvider) { fragmentForDefaultSourceSet.refines(other) } @@ -106,10 +105,10 @@ internal open class LegacyMappedVariant( override val fragmentName: String get() = fragmentForDefaultSourceSet.fragmentName + "Variant" - override val directRefinesDependencies: Iterable - get() = fragmentForDefaultSourceSet.directRefinesDependencies + override val declaredRefinesDependencies: Iterable + get() = fragmentForDefaultSourceSet.declaredRefinesDependencies - override val declaredModuleDependencies: Iterable + override val declaredModuleDependencies: Iterable get() = fragmentForDefaultSourceSet.declaredModuleDependencies /** This configuration includes the dependencies from the refines-parents */ @@ -151,7 +150,7 @@ internal open class LegacyMappedVariant( internal class LegacyMappedVariantWithRuntime(private val compilationWithRuntime: KotlinCompilationToRunnableFiles<*>) : LegacyMappedVariant(compilationWithRuntime), - KotlinGradleVariantWithRuntime { + KpmGradleVariantWithRuntime { override val runtimeDependenciesConfiguration: Configuration get() = project.configurations.getByName(compilationWithRuntime.runtimeDependencyConfigurationName) @@ -195,7 +194,7 @@ internal fun mapTargetCompilationsToKpmVariants(target: AbstractKotlinTarget, pu } whenPublicationShouldRegister { - val mainModule = target.project.kpmModules.getByName(KotlinGradleModule.MAIN_MODULE_NAME) + val mainModule = target.project.kpmModules.getByName(KpmGradleModule.MAIN_MODULE_NAME) target.kotlinComponents.forEach { kotlinComponent -> val moduleHolder = DefaultSingleMavenPublishedModuleHolder( mainModule, diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/ModulePublishing.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/ModulePublishing.kt index bd1fb84c907..363e4e8dd01 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/ModulePublishing.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/ModulePublishing.kt @@ -18,7 +18,7 @@ internal fun setupKpmModulesPublication(project: Project) { } } -internal fun setupPublicationForModule(module: KotlinGradleModule) { +internal fun setupPublicationForModule(module: KpmGradleModule) { val project = module.project val metadataElements = project.configurations.getByName(metadataElementsConfigurationName(module)) @@ -50,7 +50,7 @@ internal fun setupPublicationForModule(module: KotlinGradleModule) { } } -private fun MavenPublication.setupKotlinToolingMetadataIfNeeded(module: KotlinGradleModule) { +private fun MavenPublication.setupKotlinToolingMetadataIfNeeded(module: KpmGradleModule) { val buildKotlinToolingMetadataTask = module.buildKotlinToolingMetadataTask ?: return artifact(buildKotlinToolingMetadataTask.map { it.outputFile }) { artifact -> @@ -67,4 +67,4 @@ private open class SoftwareComponentFactoryHolder @Inject constructor( return project.objects.newInstance(SoftwareComponentFactoryHolder::class.java) } } -} \ No newline at end of file +} diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/TransformKotlinGranularMetadataForFragment.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/TransformKotlinGranularMetadataForFragment.kt index fb65cebf4fc..3d5fa86f94d 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/TransformKotlinGranularMetadataForFragment.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/TransformKotlinGranularMetadataForFragment.kt @@ -20,7 +20,7 @@ internal open class TransformKotlinGranularMetadataForFragment @Inject constructor( @get:Internal @field:Transient - val fragment: KotlinGradleFragment, + val fragment: KpmGradleFragment, //FIXME annotations private val transformation: FragmentGranularMetadataResolver ) : DefaultTask() { diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/Utils.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/Utils.kt index 74bd815aa6e..3d4100e44f9 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/Utils.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/Utils.kt @@ -16,8 +16,8 @@ import org.jetbrains.kotlin.gradle.dsl.KotlinProjectExtension import org.jetbrains.kotlin.gradle.dsl.KotlinSingleTargetExtension import org.jetbrains.kotlin.gradle.plugin.KotlinTarget import org.jetbrains.kotlin.gradle.utils.isGradleVersionAtLeast -import org.jetbrains.kotlin.project.model.KotlinModule -import org.jetbrains.kotlin.project.model.LocalModuleIdentifier +import org.jetbrains.kotlin.project.model.KpmModule +import org.jetbrains.kotlin.project.model.KpmLocalModuleIdentifier val KotlinProjectExtension.targets: Iterable get() = when (this) { @@ -26,8 +26,8 @@ val KotlinProjectExtension.targets: Iterable else -> error("Unexpected 'kotlin' extension $this") } -fun KotlinModule.representsProject(project: Project): Boolean = - moduleIdentifier.let { it is LocalModuleIdentifier && it.buildId == project.currentBuildId().name && it.projectId == project.path } +fun KpmModule.representsProject(project: Project): Boolean = + moduleIdentifier.let { it is KpmLocalModuleIdentifier && it.buildId == project.currentBuildId().name && it.projectId == project.path } // FIXME internal API? fun Project.currentBuildId(): BuildIdentifier = @@ -52,4 +52,4 @@ val Project.distsDirectory get() = if (isGradleVersionAtLeast(7, 1)) { extensions.getByType(BasePluginExtension::class.java).distsDirectory } else { convention.getPlugin(BasePluginConvention::class.java).distsDirectory - } \ No newline at end of file + } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/VariantFactories.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/VariantFactories.kt index 510790f22c9..82df0ee0397 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/VariantFactories.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/VariantFactories.kt @@ -12,11 +12,11 @@ import kotlin.reflect.KClass internal fun registerDefaultVariantFactories(project: Project) { project.kpmModules.configureEach { module -> module.fragments.registerFactory( - KotlinJvmVariant::class.java, + KpmJvmVariant::class.java, KotlinJvmVariantFactory(module) ) - fun registerNativeVariantFactory( + fun registerNativeVariantFactory( constructor: KotlinNativeVariantConstructor ) = module.fragments.registerFactory( constructor.variantClass, KotlinNativeVariantFactory(module, constructor) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/abstractVariants.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/abstractVariants.kt index 6f38155a8fe..514405e3dd9 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/abstractVariants.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/abstractVariants.kt @@ -15,21 +15,20 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.DefaultKotlinCompilationOutput import org.jetbrains.kotlin.gradle.plugin.mpp.MavenPublicationCoordinatesProvider import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.ComputedCapability import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.disambiguateName -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.newDependencyFilesHolder import org.jetbrains.kotlin.gradle.plugin.mpp.publishedConfigurationName import org.jetbrains.kotlin.gradle.utils.dashSeparatedName import org.jetbrains.kotlin.project.model.KotlinAttributeKey import org.jetbrains.kotlin.project.model.KotlinPlatformTypeAttribute -abstract class KotlinGradleVariantInternal( - containingModule: KotlinGradleModule, +abstract class KpmGradleVariantInternal( + containingModule: KpmGradleModule, fragmentName: String, dependencyConfigurations: KotlinFragmentDependencyConfigurations, final override val compileDependenciesConfiguration: Configuration, final override val apiElementsConfiguration: Configuration -) : KotlinGradleFragmentInternal( +) : KpmGradleFragmentInternal( containingModule, fragmentName, dependencyConfigurations -), KotlinGradleVariant { +), KpmGradleVariant { override val variantAttributes: Map get() = mapOf(KotlinPlatformTypeAttribute to kotlinPlatformTypeAttributeFromPlatform(platformType)) // TODO user attributes @@ -51,7 +50,7 @@ abstract class KotlinGradleVariantInternal( } class DefaultSingleMavenPublishedModuleHolder( - private var module: KotlinGradleModule, override val defaultPublishedModuleSuffix: String? + private var module: KpmGradleModule, override val defaultPublishedModuleSuffix: String? ) : SingleMavenPublishedModuleHolder { private val project get() = module.project @@ -80,24 +79,24 @@ class DefaultSingleMavenPublishedModuleHolder( private fun kotlinPlatformTypeAttributeFromPlatform(platformType: KotlinPlatformType) = platformType.name // TODO: rewrite with the artifacts API -internal val KotlinGradleVariant.defaultSourceArtifactTaskName: String +internal val KpmGradleVariant.defaultSourceArtifactTaskName: String get() = disambiguateName("sourcesJar") -abstract class KotlinGradleVariantWithRuntimeInternal( - containingModule: KotlinGradleModule, +abstract class KpmGradleVariantWithRuntimeInternal( + containingModule: KpmGradleModule, fragmentName: String, dependencyConfigurations: KotlinFragmentDependencyConfigurations, compileDependencyConfiguration: Configuration, apiElementsConfiguration: Configuration, final override val runtimeDependenciesConfiguration: Configuration, final override val runtimeElementsConfiguration: Configuration -) : KotlinGradleVariantInternal( +) : KpmGradleVariantInternal( containingModule = containingModule, fragmentName = fragmentName, dependencyConfigurations = dependencyConfigurations, compileDependenciesConfiguration = compileDependencyConfiguration, apiElementsConfiguration = apiElementsConfiguration -), KotlinGradleVariantWithRuntime { +), KpmGradleVariantWithRuntime { // TODO deduplicate with KotlinCompilation? override var runtimeDependencyFiles: FileCollection = project.files(runtimeDependenciesConfiguration) @@ -106,17 +105,17 @@ abstract class KotlinGradleVariantWithRuntimeInternal( project.files(listOf({ compilationOutputs.allOutputs }, { runtimeDependencyFiles })) } -private fun defaultModuleSuffix(module: KotlinGradleModule, variantName: String): String = +private fun defaultModuleSuffix(module: KpmGradleModule, variantName: String): String = dashSeparatedName(variantName, module.moduleClassifier) -abstract class KotlinGradlePublishedVariantWithRuntime( - containingModule: KotlinGradleModule, fragmentName: String, +abstract class KpmGradlePublishedVariantWithRuntime( + containingModule: KpmGradleModule, fragmentName: String, dependencyConfigurations: KotlinFragmentDependencyConfigurations, compileDependencyConfiguration: Configuration, apiElementsConfiguration: Configuration, runtimeDependencyConfiguration: Configuration, runtimeElementsConfiguration: Configuration -) : KotlinGradleVariantWithRuntimeInternal( +) : KpmGradleVariantWithRuntimeInternal( containingModule = containingModule, fragmentName = fragmentName, dependencyConfigurations = dependencyConfigurations, diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/fragmentsMetadataCompilation.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/fragmentsMetadataCompilation.kt index d6a74c81ffe..d3030afe12f 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/fragmentsMetadataCompilation.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/fragmentsMetadataCompilation.kt @@ -28,7 +28,7 @@ import org.jetbrains.kotlin.gradle.utils.dashSeparatedName import org.jetbrains.kotlin.gradle.utils.filesProvider import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName import org.jetbrains.kotlin.library.KLIB_FILE_EXTENSION -import org.jetbrains.kotlin.project.model.KotlinModuleFragment +import org.jetbrains.kotlin.project.model.KpmFragment import java.util.concurrent.Callable internal fun setupFragmentsMetadataForKpmModules(project: Project) { @@ -38,7 +38,7 @@ internal fun setupFragmentsMetadataForKpmModules(project: Project) { } } -internal fun configureMetadataResolutionAndBuild(module: KotlinGradleModule) { +internal fun configureMetadataResolutionAndBuild(module: KpmGradleModule) { val project = module.project createResolvableMetadataConfigurationForModule(module) @@ -52,7 +52,7 @@ internal fun configureMetadataResolutionAndBuild(module: KotlinGradleModule) { generateAndExportProjectStructureMetadata(module) } -internal fun configureMetadataExposure(module: KotlinGradleModule) { +internal fun configureMetadataExposure(module: KpmGradleModule) { val project = module.project project.configurations.create(metadataElementsConfigurationName(module)).apply { isCanBeConsumed = false @@ -83,14 +83,14 @@ internal fun configureMetadataExposure(module: KotlinGradleModule) { ) } -fun metadataElementsConfigurationName(module: KotlinGradleModule) = +fun metadataElementsConfigurationName(module: KpmGradleModule) = module.disambiguateName("metadataElements") -fun sourceElementsConfigurationName(module: KotlinGradleModule) = +fun sourceElementsConfigurationName(module: KpmGradleModule) = module.disambiguateName("sourceElements") private fun generateAndExportProjectStructureMetadata( - module: KotlinGradleModule + module: KpmGradleModule ) { val project = module.project val projectStructureMetadata = project.createGenerateProjectStructureMetadataTask(module) @@ -105,7 +105,7 @@ private fun generateAndExportProjectStructureMetadata( } } -private fun createResolvableMetadataConfigurationForModule(module: KotlinGradleModule) { +private fun createResolvableMetadataConfigurationForModule(module: KpmGradleModule) { val project = module.project project.configurations.create(module.resolvableMetadataConfigurationName).apply { isCanBeConsumed = false @@ -121,7 +121,7 @@ private fun createResolvableMetadataConfigurationForModule(module: KotlinGradleM } private fun configureMetadataCompilationsAndCreateRegistry( - module: KotlinGradleModule, + module: KpmGradleModule, metadataCompilationRegistry: MetadataCompilationRegistry ) { val project = module.project @@ -143,7 +143,7 @@ private fun configureMetadataCompilationsAndCreateRegistry( } private fun configureMetadataJarTask( - module: KotlinGradleModule, + module: KpmGradleModule, registry: MetadataCompilationRegistry ) { val project = module.project @@ -169,11 +169,11 @@ private fun configureMetadataJarTask( } } -internal fun metadataJarName(module: KotlinGradleModule) = +internal fun metadataJarName(module: KpmGradleModule) = lowerCamelCaseName(module.moduleClassifier, KotlinMetadataTargetConfigurator.ALL_METADATA_JAR_NAME) private fun createCommonMetadataCompilation( - fragment: KotlinGradleFragment, + fragment: KpmGradleFragment, compileAllTask: TaskProvider, metadataCompilationRegistry: MetadataCompilationRegistry ) { @@ -194,7 +194,7 @@ private fun createCommonMetadataCompilation( } private fun createNativeMetadataCompilation( - fragment: KotlinGradleFragment, + fragment: KpmGradleFragment, compileAllTask: TaskProvider, metadataCompilationRegistry: MetadataCompilationRegistry ) { @@ -216,7 +216,7 @@ private fun createNativeMetadataCompilation( private class MetadataCompilationTasksConfigurator(project: Project) : KotlinCompilationTaskConfigurator(project) { fun createKotlinCommonCompilationTask( - fragment: KotlinGradleFragment, + fragment: KpmGradleFragment, compilationData: KotlinCommonFragmentMetadataCompilationData ) { KotlinCommonSourceSetProcessor( @@ -235,22 +235,22 @@ private class MetadataCompilationTasksConfigurator(project: Project) : KotlinCom } fun createKotlinNativeMetadataCompilationTask( - fragment: KotlinGradleFragment, + fragment: KpmGradleFragment, compilationData: KotlinNativeFragmentMetadataCompilationData ): TaskProvider = createKotlinNativeCompilationTask(fragment, compilationData) { kotlinPluginData = project.compilerPluginProviderForNativeMetadata(fragment, compilationData) } - override fun getSourcesForFragmentCompilation(fragment: KotlinGradleFragment): MultipleSourceRootsProvider { + override fun getSourcesForFragmentCompilation(fragment: KpmGradleFragment): MultipleSourceRootsProvider { return project.provider { listOf(fragmentSourcesProvider.getFragmentOwnSources(fragment)) } } - override fun getCommonSourcesForFragmentCompilation(fragment: KotlinGradleFragment): MultipleSourceRootsProvider { + override fun getCommonSourcesForFragmentCompilation(fragment: KpmGradleFragment): MultipleSourceRootsProvider { return project.provider { listOf(fragmentSourcesProvider.getFragmentOwnSources(fragment)) } } } -private fun resolvedMetadataProviders(fragment: KotlinGradleFragment) = +private fun resolvedMetadataProviders(fragment: KpmGradleFragment) = fragment.withRefinesClosure.map { FragmentResolvedMetadataProvider( fragment.project.tasks.withType().named(transformFragmentMetadataTaskName(it)) @@ -259,7 +259,7 @@ private fun resolvedMetadataProviders(fragment: KotlinGradleFragment) = private fun createExtractMetadataTask( project: Project, - fragment: KotlinGradleFragment, + fragment: KpmGradleFragment, transformation: FragmentGranularMetadataResolver ) { project.tasks.register( @@ -293,5 +293,5 @@ private fun disableMetadataCompilationIfNotYetSupported( } } -private fun transformFragmentMetadataTaskName(fragment: KotlinModuleFragment) = +private fun transformFragmentMetadataTaskName(fragment: KpmFragment) = lowerCamelCaseName("resolve", fragment.disambiguateName("Metadata")) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/util/DependencyFilesHolder.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/util/DependencyFilesHolder.kt index 74c2b9ec1f0..89010be1138 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/util/DependencyFilesHolder.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/util/DependencyFilesHolder.kt @@ -8,8 +8,8 @@ package org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util import org.gradle.api.Project import org.gradle.api.file.FileCollection import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.AbstractKotlinFragmentMetadataCompilationData -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleVariant -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleVariantWithRuntime +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KpmGradleVariant +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KpmGradleVariantWithRuntime import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.resolvableMetadataConfigurationName import org.jetbrains.kotlin.gradle.utils.filesProvider @@ -20,7 +20,7 @@ interface DependencyFilesHolder { companion object } -internal fun DependencyFilesHolder.Companion.ofVariantCompileDependencies(variant: KotlinGradleVariant): DependencyFilesHolder = +internal fun DependencyFilesHolder.Companion.ofVariantCompileDependencies(variant: KpmGradleVariant): DependencyFilesHolder = object : DependencyFilesHolder { override val dependencyConfigurationName: String get() = variant.compileDependenciesConfiguration.name @@ -29,7 +29,7 @@ internal fun DependencyFilesHolder.Companion.ofVariantCompileDependencies(varian set(value) { variant.compileDependencyFiles = value } } -internal fun DependencyFilesHolder.Companion.ofVariantRuntimeDependencies(variant: KotlinGradleVariantWithRuntime): DependencyFilesHolder = +internal fun DependencyFilesHolder.Companion.ofVariantRuntimeDependencies(variant: KpmGradleVariantWithRuntime): DependencyFilesHolder = object : DependencyFilesHolder { override val dependencyConfigurationName: String get() = variant.runtimeDependenciesConfiguration.name @@ -58,4 +58,4 @@ internal fun Project.newDependencyFilesHolder(dependencyConfigurationName: Strin SimpleDependencyFilesHolder( dependencyConfigurationName, project.filesProvider { project.configurations.getByName(dependencyConfigurationName) } - ) \ No newline at end of file + ) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/util/KotlinNameDisambiguation.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/util/KotlinNameDisambiguation.kt index ab000862f5e..8799e2bbc2f 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/util/KotlinNameDisambiguation.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/util/KotlinNameDisambiguation.kt @@ -7,10 +7,10 @@ package org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleModule +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KpmGradleModule import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName -import org.jetbrains.kotlin.project.model.KotlinModule -import org.jetbrains.kotlin.project.model.KotlinModuleFragment +import org.jetbrains.kotlin.project.model.KpmModule +import org.jetbrains.kotlin.project.model.KpmFragment /** * Mechanism for disambiguating/scoping names for certain entities (e.g. fragments) @@ -36,41 +36,41 @@ interface KotlinNameDisambiguation { /* Default implementation for fragments */ -internal fun FragmentNameDisambiguation(module: KotlinModule, fragmentName: String): KotlinNameDisambiguation { +internal fun FragmentNameDisambiguation(module: KpmModule, fragmentName: String): KotlinNameDisambiguation { return DefaultKotlinFragmentNameDisambiguation(module, fragmentName) } -internal fun FragmentNameDisambiguationOmittingMain(module: KotlinModule, fragmentName: String): KotlinNameDisambiguation { +internal fun FragmentNameDisambiguationOmittingMain(module: KpmModule, fragmentName: String): KotlinNameDisambiguation { return DefaultKotlinFragmentNameDisambiguationOmittingMain(module, fragmentName) } private class DefaultKotlinFragmentNameDisambiguation( - private val module: KotlinModule, + private val module: KpmModule, private val fragmentName: String ) : KotlinNameDisambiguation { override fun disambiguateName(simpleName: String): String { - return KotlinModuleFragment.disambiguateName(module, fragmentName, simpleName) + return KpmFragment.disambiguateName(module, fragmentName, simpleName) } } private class DefaultKotlinFragmentNameDisambiguationOmittingMain( - private val module: KotlinModule, + private val module: KpmModule, private val fragmentName: String ) : KotlinNameDisambiguation { override fun disambiguateName(simpleName: String): String { - return KotlinModuleFragment.disambiguateNameOmittingMain(module, fragmentName, simpleName) + return KpmFragment.disambiguateNameOmittingMain(module, fragmentName, simpleName) } } -internal fun KotlinModuleFragment.disambiguateName(simpleName: String) = - KotlinModuleFragment.disambiguateName(containingModule, fragmentName, simpleName) +internal fun KpmFragment.disambiguateName(simpleName: String) = + KpmFragment.disambiguateName(containingModule, fragmentName, simpleName) -internal val KotlinModuleFragment.unambiguousNameInProject +internal val KpmFragment.unambiguousNameInProject get() = disambiguateName("") -internal fun KotlinModuleFragment.Companion.disambiguateName(module: KotlinModule, fragmentName: String, simpleName: String) = - lowerCamelCaseName(fragmentName, module.moduleIdentifier.moduleClassifier ?: KotlinGradleModule.MAIN_MODULE_NAME, simpleName) +internal fun KpmFragment.Companion.disambiguateName(module: KpmModule, fragmentName: String, simpleName: String) = + lowerCamelCaseName(fragmentName, module.moduleIdentifier.moduleClassifier ?: KpmGradleModule.MAIN_MODULE_NAME, simpleName) -internal fun KotlinModuleFragment.Companion.disambiguateNameOmittingMain(module: KotlinModule, fragmentName: String, simpleName: String) = +internal fun KpmFragment.Companion.disambiguateNameOmittingMain(module: KpmModule, fragmentName: String, simpleName: String) = lowerCamelCaseName(fragmentName, module.moduleIdentifier.moduleClassifier, simpleName) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/util/capabilities.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/util/capabilities.kt index f82731c6363..be3c1a6aab1 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/util/capabilities.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/util/capabilities.kt @@ -7,7 +7,7 @@ package org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util import org.gradle.api.capabilities.Capability import org.gradle.api.provider.Provider -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleModule +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KpmGradleModule internal class ComputedCapability( val groupProvider: Provider, @@ -22,7 +22,7 @@ internal class ComputedCapability( override fun getVersion(): String? = versionProvider.get() companion object { - fun fromModule(module: KotlinGradleModule): ComputedCapability { + fun fromModule(module: KpmGradleModule): ComputedCapability { val project = module.project return ComputedCapability( project.provider { project.group.toString() }, @@ -32,14 +32,14 @@ internal class ComputedCapability( ) } - fun fromModuleOrNull(module: KotlinGradleModule): ComputedCapability? = + fun fromModuleOrNull(module: KpmGradleModule): ComputedCapability? = if (module.moduleClassifier != null) fromModule(module) else null - fun capabilityStringFromModule(module: KotlinGradleModule): String? = + fun capabilityStringFromModule(module: KpmGradleModule): String? = if (module.moduleClassifier != null) fromModule(module).notation() else null } fun notation(): String = "$group:$name:$version" -} \ No newline at end of file +} diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/util/dependencyGraphUtils.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/util/dependencyGraphUtils.kt index 8bac2b86a4b..df1a09bef78 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/util/dependencyGraphUtils.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/util/dependencyGraphUtils.kt @@ -5,13 +5,13 @@ package org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.GradleDependencyGraph +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KpmGradleDependencyGraph import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.GradleDependencyGraphNode -import org.jetbrains.kotlin.project.model.KotlinModule +import org.jetbrains.kotlin.project.model.KpmModule import org.jetbrains.kotlin.tooling.core.withClosure -internal val GradleDependencyGraph.allDependencyNodes: Iterable +internal val KpmGradleDependencyGraph.allDependencyNodes: Iterable get() = root.withClosure { it.dependenciesByFragment.values.flatten() } -internal val GradleDependencyGraph.allDependencyModules: Iterable +internal val KpmGradleDependencyGraph.allDependencyModules: Iterable get() = allDependencyNodes.map { it.module } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/variantPublishing.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/variantPublishing.kt index 5c2f3b3d99f..71d3a94e9ff 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/variantPublishing.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/variantPublishing.kt @@ -5,7 +5,6 @@ package org.jetbrains.kotlin.gradle.plugin.mpp.pm20 -import com.android.build.gradle.internal.publishing.AndroidArtifacts import org.gradle.api.Project import org.gradle.api.artifacts.Configuration import org.gradle.api.artifacts.ModuleDependency @@ -33,14 +32,14 @@ import javax.inject.Inject interface PlatformPublicationToMavenRequest { val componentName: String - val fromModule: KotlinGradleModule + val fromModule: KpmGradleModule val publicationHolder: SingleMavenPublishedModuleHolder val variantPublicationRequests: Iterable } data class BasicPlatformPublicationToMavenRequest( override val componentName: String, - override val fromModule: KotlinGradleModule, + override val fromModule: KpmGradleModule, override val publicationHolder: SingleMavenPublishedModuleHolder, override val variantPublicationRequests: Iterable ) : PlatformPublicationToMavenRequest { @@ -54,17 +53,17 @@ data class BasicPlatformPublicationToMavenRequest( /** TODO: consider also using this class for exposing a KPM variant's configurations for project-to-project dependencies, * so that a variant may expose an arbitrary set of configurations rather just { API, runtime } or { API } */ interface VariantPublicationRequest { - val fromVariant: KotlinGradleVariant + val fromVariant: KpmGradleVariant val publishConfiguration: Configuration } data class BasicVariantPublicationRequest( - override val fromVariant: KotlinGradleVariant, + override val fromVariant: KpmGradleVariant, override val publishConfiguration: Configuration ) : VariantPublicationRequest -fun VariantPublishingConfigurator.configureNativeVariantPublication(variant: KotlinNativeVariantInternal) { +fun VariantPublishingConfigurator.configureNativeVariantPublication(variant: KpmNativeVariantInternal) { val publishConfigurations = listOfNotNull( variant.apiElementsConfiguration, variant.hostSpecificMetadataElementsConfiguration // host-specific metadata may be absent @@ -72,13 +71,13 @@ fun VariantPublishingConfigurator.configureNativeVariantPublication(variant: Kot configureSingleVariantPublishing(variant, variant, publishConfigurations) } -fun VariantPublishingConfigurator.configureSingleVariantPublication(variant: KotlinGradlePublishedVariantWithRuntime) { +fun VariantPublishingConfigurator.configureSingleVariantPublication(variant: KpmGradlePublishedVariantWithRuntime) { val publishConfigurations = listOf(variant.apiElementsConfiguration, variant.runtimeElementsConfiguration) configureSingleVariantPublishing(variant, variant, publishConfigurations) } fun VariantPublishingConfigurator.configureSingleVariantPublishing( - variant: KotlinGradleVariant, + variant: KpmGradleVariant, publishedModuleHolder: SingleMavenPublishedModuleHolder, publishConfigurations: Iterable ) { @@ -103,12 +102,12 @@ open class VariantPublishingConfigurator @Inject constructor( project.objects.newInstance(VariantPublishingConfigurator::class.java, project) } - open fun platformComponentName(variant: KotlinGradleVariant) = variant.disambiguateName("") + open fun platformComponentName(variant: KpmGradleVariant) = variant.disambiguateName("") - open fun inferMavenScope(variant: KotlinGradleVariant, configurationName: String): String? = + open fun inferMavenScope(variant: KpmGradleVariant, configurationName: String): String? = when { configurationName == variant.apiElementsConfiguration.name -> "compile" - variant is KotlinGradleVariantWithRuntime && configurationName == variant.runtimeElementsConfiguration.name -> "runtime" + variant is KpmGradleVariantWithRuntime && configurationName == variant.runtimeElementsConfiguration.name -> "runtime" else -> null } @@ -144,7 +143,7 @@ open class VariantPublishingConfigurator @Inject constructor( ) } - protected open fun configureSourceElementsPublishing(componentName: String, variant: KotlinGradleVariant) { + protected open fun configureSourceElementsPublishing(componentName: String, variant: KpmGradleVariant) { val configurationName = variant.disambiguateName("sourceElements") val docsVariants = DocumentationVariantConfigurator().createSourcesElementsConfiguration(configurationName, variant) project.components.withType(AdhocComponentWithVariants::class.java).named(componentName).configure { component -> @@ -205,7 +204,7 @@ open class VariantPublishingConfigurator @Inject constructor( protected open fun registerPlatformVariantsInRootModule( publishedModuleHolder: SingleMavenPublishedModuleHolder, - kotlinModule: KotlinGradleModule, + kotlinModule: KpmGradleModule, variantRequests: Iterable ) { val platformModuleDependencyProvider = project.provider { @@ -238,7 +237,7 @@ open class VariantPublishingConfigurator @Inject constructor( } internal data class AdvancedVariantPublicationRequest( - override val fromVariant: KotlinGradleVariant, + override val fromVariant: KpmGradleVariant, override val publishConfiguration: Configuration, val overrideConfigurationAttributesForPublication: AttributeContainer?, val overrideConfigurationArtifactsForPublication: Provider>?, @@ -271,7 +270,7 @@ open class DocumentationVariantConfigurator { open fun createSourcesElementsConfiguration( configurationName: String, - variant: KotlinGradleVariant + variant: KpmGradleVariant ): Configuration { val sourcesArtifactTask = variant.project.tasks.withType().named(variant.sourceArchiveTaskName) val artifactClassifier = dashSeparatedName(variant.containingModule.moduleClassifier, "sources") @@ -283,4 +282,4 @@ open class DocumentationVariantConfigurator { ComputedCapability.fromModuleOrNull(variant.containingModule) ) } -} \ No newline at end of file +} diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/kpm/FragmentMappedKotlinSourceSet.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/kpm/FragmentMappedKotlinSourceSet.kt index 2e2fd78ea56..c8c8fe5cfe3 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/kpm/FragmentMappedKotlinSourceSet.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/kpm/FragmentMappedKotlinSourceSet.kt @@ -15,13 +15,12 @@ import org.jetbrains.kotlin.gradle.plugin.KotlinDependencyHandler import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet import org.jetbrains.kotlin.gradle.plugin.LanguageSettingsBuilder import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.* -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.unambiguousNameInProject import org.jetbrains.kotlin.gradle.plugin.sources.createDefaultSourceDirectorySet class FragmentMappedKotlinSourceSet( private val sourceSetName: String, private val project: Project, - internal val underlyingFragment: KotlinGradleFragment + internal val underlyingFragment: KpmGradleFragment ) : KotlinSourceSet { val displayName: String get() = sourceSetName @@ -75,7 +74,7 @@ class FragmentMappedKotlinSourceSet( override val dependsOn: Set get() = project.kotlinExtension.sourceSets.filter { - it is FragmentMappedKotlinSourceSet && it.underlyingFragment in underlyingFragment.directRefinesDependencies + it is FragmentMappedKotlinSourceSet && it.underlyingFragment in underlyingFragment.declaredRefinesDependencies }.toSet() override fun toString(): String = "source set $name" diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/kpm/SourceSetMappedFragmentLocator.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/kpm/SourceSetMappedFragmentLocator.kt index 72f658698d9..cdabb1bf76d 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/kpm/SourceSetMappedFragmentLocator.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/sources/kpm/SourceSetMappedFragmentLocator.kt @@ -10,7 +10,7 @@ import org.jetbrains.kotlin.gradle.dsl.* import org.jetbrains.kotlin.gradle.dsl.topLevelExtensionOrNull import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTarget import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTargetPreset -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleModule +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KpmGradleModule import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.kpmModules interface SourceSetMappedFragmentLocator { @@ -36,7 +36,7 @@ internal class MultiplatformSourceSetMappedFragmentLocator : SourceSetMappedFrag override fun locateFragmentForSourceSet(project: Project, sourceSetName: String): SourceSetMappedFragmentLocator.FragmentLocation { val camelCaseParts = sourceSetName.camelCaseParts() if (camelCaseParts.size < 2) { - return SourceSetMappedFragmentLocator.FragmentLocation(KotlinGradleModule.MAIN_MODULE_NAME, sourceSetName) + return SourceSetMappedFragmentLocator.FragmentLocation(KpmGradleModule.MAIN_MODULE_NAME, sourceSetName) } val androidTarget = when (val ext = project.topLevelExtension) { @@ -55,7 +55,7 @@ internal class MultiplatformSourceSetMappedFragmentLocator : SourceSetMappedFrag androidSourceSetModuleName(androidTarget.name, sourceSetName) else null } ?: candidateModuleNames.lastOrNull { project.kpmModules.findByName(it) != null } - ?: KotlinGradleModule.MAIN_MODULE_NAME + ?: KpmGradleModule.MAIN_MODULE_NAME val fragmentName = if (sourceSetName.endsWith(moduleName, ignoreCase = true)) sourceSetName.dropLast(moduleName.length) else sourceSetName @@ -67,7 +67,7 @@ internal class MultiplatformSourceSetMappedFragmentLocator : SourceSetMappedFrag val compilationName = sourceSetName.removePrefix(targetName).takeIf { it != sourceSetName } ?: return null return when { "Test" in compilationName -> "test" - else -> KotlinGradleModule.MAIN_MODULE_NAME + else -> KpmGradleModule.MAIN_MODULE_NAME } } @@ -84,4 +84,4 @@ private class SingleTargetSourceSetMappedFragmentLocator : SourceSetMappedFragme } } -internal const val SINGLE_PLATFORM_FRAGMENT_NAME = "common" \ No newline at end of file +internal const val SINGLE_PLATFORM_FRAGMENT_NAME = "common" diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/metadata/KotlinMetadataTargetConfigurator.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/metadata/KotlinMetadataTargetConfigurator.kt index de5212cf77d..77aa676374d 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/metadata/KotlinMetadataTargetConfigurator.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/metadata/KotlinMetadataTargetConfigurator.kt @@ -489,7 +489,7 @@ internal class NativeSharedCompilationProcessor( override fun run() = Unit } -internal fun Project.createGenerateProjectStructureMetadataTask(module: KotlinGradleModule): TaskProvider = +internal fun Project.createGenerateProjectStructureMetadataTask(module: KpmGradleModule): TaskProvider = project.registerTask(lowerCamelCaseName("generate", module.moduleClassifier, "ProjectStructureMetadata")) { task -> task.lazyKotlinProjectStructureMetadata = lazy { buildProjectStructureMetadata(module) } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/metadata/KpmMetadataTargetConfigurator.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/metadata/KpmMetadataTargetConfigurator.kt index cbb1313a318..520e93a8fc2 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/metadata/KpmMetadataTargetConfigurator.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/metadata/KpmMetadataTargetConfigurator.kt @@ -39,7 +39,7 @@ internal class KpmMetadataTargetConfigurator(private val metadataTargetConfigura private fun configureTargetWithKpm(target: KotlinMetadataTarget) { target.project.whenEvaluated { - val mainModule = target.project.kpmModules.getByName(KotlinGradleModule.MAIN_MODULE_NAME) + val mainModule = target.project.kpmModules.getByName(KpmGradleModule.MAIN_MODULE_NAME) val metadataCompilations = target.project.metadataCompilationRegistryByModuleId.getValue(mainModule.moduleIdentifier) mainModule.fragments.forEach { fragment -> val compilationData = metadataCompilations.getForFragmentOrNull(fragment) ?: return@forEach @@ -53,7 +53,7 @@ internal class KpmMetadataTargetConfigurator(private val metadataTargetConfigura val compilation = when { isNative -> { val konanTargets = - mainModule.variantsContainingFragment(fragment).map { (it as KotlinNativeVariantInternal).konanTarget } + mainModule.variantsContainingFragment(fragment).map { (it as KpmNativeVariantInternal).konanTarget } KotlinSharedNativeCompilation(konanTargets, compilationDetails as CompilationDetails) } else -> KotlinCommonCompilation(compilationDetails as CompilationDetails) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTarget.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTarget.kt index d7a8fee10dd..f0d604be0fc 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTarget.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTarget.kt @@ -158,12 +158,12 @@ private fun getHostSpecificElements( ): Set = fragments.filterTo(mutableSetOf()) { isNativeShared(it) && isHostSpecificKonanTargetsSet(getKonanTargets(it)) } internal fun getHostSpecificFragments( - module: KotlinGradleModule -): Set = getHostSpecificElements( + module: KpmGradleModule +): Set = getHostSpecificElements( module.fragments, isNativeShared = { it.isNativeShared() }, getKonanTargets = { - val nativeVariants = module.variantsContainingFragment(it).filterIsInstance() + val nativeVariants = module.variantsContainingFragment(it).filterIsInstance() nativeVariants.mapTo(mutableSetOf()) { it.konanTarget } } ) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetConfigurator.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetConfigurator.kt index 003f72fc346..65545794026 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetConfigurator.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetConfigurator.kt @@ -450,7 +450,7 @@ open class KotlinNativeTargetConfigurator : AbstractKotl it.dependsOn(compileTaskProvider) } } - val shouldAddCompileOutputsToElements = compilation.owner is KotlinGradleVariant || compilation.isMainCompilationData() + val shouldAddCompileOutputsToElements = compilation.owner is KpmGradleVariant || compilation.isMainCompilationData() if (shouldAddCompileOutputsToElements) { createRegularKlibArtifact(compilation, compileTaskProvider) } @@ -536,7 +536,7 @@ open class KotlinNativeTargetConfigurator : AbstractKotl private val KotlinNativeCompilationData<*>.apiElementsConfigurationName: String get() = when (val dataOwner = owner) { - is KotlinGradleVariant -> dataOwner.apiElementsConfiguration.name + is KpmGradleVariant -> dataOwner.apiElementsConfiguration.name is KotlinTarget -> dataOwner.apiElementsConfigurationName else -> error("unexpected owner of $this") } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/CInteropMetadataDependencyTransformationTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/CInteropMetadataDependencyTransformationTask.kt index cd2f472259f..fe1c1f99c82 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/CInteropMetadataDependencyTransformationTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/CInteropMetadataDependencyTransformationTask.kt @@ -31,7 +31,7 @@ import org.jetbrains.kotlin.gradle.utils.filesProvider import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName import org.jetbrains.kotlin.gradle.utils.outputFilesProvider import org.jetbrains.kotlin.library.KLIB_FILE_EXTENSION -import org.jetbrains.kotlin.project.model.KotlinModuleIdentifier +import org.jetbrains.kotlin.project.model.KpmModuleIdentifier import java.io.File import java.util.concurrent.Callable import javax.inject.Inject @@ -104,7 +104,7 @@ internal open class CInteropMetadataDependencyTransformationTask @Inject constru @Suppress("unused") class ChooseVisibleSourceSetProjection( - @Input val dependencyModuleIdentifiers: List, + @Input val dependencyModuleIdentifiers: List, @Nested val projectStructureMetadata: KotlinProjectStructureMetadata, @Input val visibleSourceSetsProvidingCInterops: Set ) { diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KotlinCompileCommonConfig.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KotlinCompileCommonConfig.kt index b2db4372b3a..fdcc2ddd805 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KotlinCompileCommonConfig.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KotlinCompileCommonConfig.kt @@ -14,7 +14,6 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinCommonCompilation import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.AbstractKotlinFragmentMetadataCompilationData import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinCompilationData import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinMetadataCompilationData -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.refinesClosure import org.jetbrains.kotlin.gradle.plugin.sources.dependsOnClosure import org.jetbrains.kotlin.gradle.tasks.KotlinCompileCommon import java.io.File @@ -57,4 +56,4 @@ internal class KotlinCompileCommonConfig( } } } -} \ No newline at end of file +} diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tooling/BuildKotlinToolingMetadataTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tooling/BuildKotlinToolingMetadataTask.kt index 19b616503c9..9dc95f7b18e 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tooling/BuildKotlinToolingMetadataTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tooling/BuildKotlinToolingMetadataTask.kt @@ -10,7 +10,6 @@ import org.gradle.api.DefaultTask import org.gradle.api.Project import org.gradle.api.Task import org.gradle.api.internal.GeneratedSubclass -import org.gradle.api.provider.Property import org.gradle.api.tasks.* import org.jetbrains.kotlin.compilerRunner.konanVersion import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension @@ -49,7 +48,7 @@ internal fun Project.registerBuildKotlinToolingMetadataTask() { internal val Project.buildKotlinToolingMetadataForMainKpmModuleTask: TaskProvider? get() { require(hasKpmModel) - val mainModule = kpmModules.getByName(KotlinGradleModule.MAIN_MODULE_NAME) + val mainModule = kpmModules.getByName(KpmGradleModule.MAIN_MODULE_NAME) return mainModule.buildKotlinToolingMetadataTask } @@ -73,7 +72,7 @@ internal val Project.buildKotlinToolingMetadataTask: TaskProvider? +internal val KpmGradleModule.buildKotlinToolingMetadataTask: TaskProvider? get() { if (!project.kotlinPropertiesProvider.enableKotlinToolingMetadataArtifact) return null val taskName = BuildKotlinToolingMetadataTask.taskNameForKotlinModule(name) @@ -92,7 +91,7 @@ internal val KotlinGradleModule.buildKotlinToolingMetadataTask: TaskProvider = +private fun KpmGradleModule.buildProjectTargets(): List = variants.map { variant -> KotlinToolingMetadata.ProjectTargetMetadata( target = variant.javaClass.canonicalName, @@ -181,9 +180,9 @@ private fun KotlinGradleModule.buildProjectTargets(): List KotlinToolingMetadata.ProjectTargetMetadata.JvmExtras( + is KpmJvmVariant -> KotlinToolingMetadata.ProjectTargetMetadata.JvmExtras( jvmTarget = compilationData.kotlinOptions.jvmTarget, withJavaEnabled = false ) @@ -191,21 +190,21 @@ private fun KotlinGradleVariant.jvmExtrasOrNull() = else -> null } -private fun KotlinGradleVariant.androidExtrasOrNull() = +private fun KpmGradleVariant.androidExtrasOrNull() = when (this) { is LegacyMappedVariant -> buildAndroidExtrasOrNull(compilation.target) else -> null } -private fun KotlinGradleVariant.jsExtrasOrNull() = +private fun KpmGradleVariant.jsExtrasOrNull() = when (this) { is LegacyMappedVariant -> buildJsExtrasOrNull(compilation.target) else -> null } -private fun KotlinGradleVariant.nativeExtrasOrNull() = +private fun KpmGradleVariant.nativeExtrasOrNull() = when (this) { - is KotlinNativeVariantInternal -> KotlinToolingMetadata.ProjectTargetMetadata.NativeExtras( + is KpmNativeVariantInternal -> KotlinToolingMetadata.ProjectTargetMetadata.NativeExtras( konanTarget = konanTarget.name, konanVersion = project.konanVersion.toString(), konanAbiVersion = KotlinAbiVersion.CURRENT.toString() diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/BuildKotlinToolingMetadataTest.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/BuildKotlinToolingMetadataTest.kt index 33b20b05d3b..5347b8cbf9f 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/BuildKotlinToolingMetadataTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/BuildKotlinToolingMetadataTest.kt @@ -30,7 +30,7 @@ private fun Project.kotlinToolingMetadataOfModule(moduleName: String): KotlinToo return module.buildKotlinToolingMetadataTask!!.get().kotlinToolingMetadata } -private val Project.kotlinToolingMetadataOfMainModule get() = kotlinToolingMetadataOfModule(KotlinGradleModule.MAIN_MODULE_NAME) +private val Project.kotlinToolingMetadataOfMainModule get() = kotlinToolingMetadataOfModule(KpmGradleModule.MAIN_MODULE_NAME) class BuildKotlinToolingMetadataTest : AbstractKpmExtensionTest() { @Test @@ -40,8 +40,8 @@ class BuildKotlinToolingMetadataTest : AbstractKpmExtensionTest() { mainAndTest { jvm val linux = fragments.create("linux") - fragments.create("linuxX64").apply { refines(linux) } - fragments.create("linuxArm64").apply { refines(linux) } + fragments.create("linuxX64").apply { refines(linux) } + fragments.create("linuxArm64").apply { refines(linux) } // No JS & Android variants available at the moment, only through [LegacyMappedVariant] which is tested below } } @@ -57,13 +57,13 @@ class BuildKotlinToolingMetadataTest : AbstractKpmExtensionTest() { assertEquals(3, metadata.projectTargets.size, "Expected 3 targets in KPM") val jvmTarget = metadata.projectTargets.single { it.platformType == jvm.name } - assertEquals(KotlinJvmVariant::class.java.canonicalName, jvmTarget.target) + assertEquals(KpmJvmVariant::class.java.canonicalName, jvmTarget.target) val nativeTargets = metadata.projectTargets.filter { it.platformType == native.name }.map { it.target }.toSet() assertEquals( setOf( - KotlinLinuxArm64Variant::class.java.canonicalName, - KotlinLinuxX64Variant::class.java.canonicalName + KpmLinuxArm64Variant::class.java.canonicalName, + KpmLinuxX64Variant::class.java.canonicalName ), nativeTargets ) @@ -122,9 +122,9 @@ class KotlinToolingMetadataWithModelMappingTest { val expectedTargets = mapOf( androidJvm to LegacyMappedVariantWithRuntime::class, - jvm to KotlinJvmVariant::class, + jvm to KpmJvmVariant::class, js to LegacyMappedVariantWithRuntime::class, - native to KotlinLinuxX64Variant::class + native to KpmLinuxX64Variant::class ) assertEquals( @@ -212,13 +212,13 @@ class KotlinToolingMetadataWithModelMappingTest { ) assertEquals( - KotlinLinuxArm64Variant::class.java.canonicalName, + KpmLinuxArm64Variant::class.java.canonicalName, linuxArm64.target ) assertEquals( - KotlinLinuxX64Variant::class.java.canonicalName, + KpmLinuxX64Variant::class.java.canonicalName, linuxX64.target ) } -} \ No newline at end of file +} diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/KotlinFragmentConfigurationDefinitionTest.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/KotlinFragmentConfigurationDefinitionTest.kt index f27d0ffb2f5..5c849090777 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/KotlinFragmentConfigurationDefinitionTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/KotlinFragmentConfigurationDefinitionTest.kt @@ -32,7 +32,7 @@ class KotlinFragmentConfigurationDefinitionTest : AbstractKpmExtensionTest() { @Test fun `test withProvider`() { - val testDefinition = ConfigurationDefinition( + val testDefinition = ConfigurationDefinition( provider = ConfigurationProvider { project.configurations.create("a") } ).withConfigurationProvider { project.configurations.create("b") } @@ -59,14 +59,14 @@ class KotlinFragmentConfigurationDefinitionTest : AbstractKpmExtensionTest() { val testAttribute2 = Attribute.of("testAttribute2", String::class.java) val testConfiguration = project.configurations.create("dummy") - val fragmentAttributes1 = FragmentAttributes { + val fragmentAttributes1 = FragmentAttributes { assertSame(testConfiguration.attributes, attributes) assertNull(attributes.getAttribute(testAttribute1)) assertNull(attributes.getAttribute(testAttribute2)) attribute(testAttribute1, "value1") } - val fragmentAttributes2 = FragmentAttributes { + val fragmentAttributes2 = FragmentAttributes { assertSame(testConfiguration.attributes, attributes) assertEquals(attributes.getAttribute(testAttribute1), "value1") assertNull(attributes.getAttribute(testAttribute2)) @@ -96,12 +96,12 @@ class KotlinFragmentConfigurationDefinitionTest : AbstractKpmExtensionTest() { @Test fun `test definition + attributes`() { - val definition = ConfigurationDefinition( + val definition = ConfigurationDefinition( provider = ConfigurationProvider { project.configurations.create("a") } ) - val attributes1 = FragmentAttributes { } - val attributes2 = FragmentAttributes { } + val attributes1 = FragmentAttributes { } + val attributes2 = FragmentAttributes { } val newDefinition = definition + attributes1 + attributes2 assertEquals( @@ -112,11 +112,11 @@ class KotlinFragmentConfigurationDefinitionTest : AbstractKpmExtensionTest() { @Test fun `test artifacts + artifacts`() { - val artifacts1 = FragmentArtifacts { + val artifacts1 = FragmentArtifacts { artifact(project.file("artifact1.jar")) } - val artifacts2 = FragmentArtifacts { + val artifacts2 = FragmentArtifacts { artifact(project.file("artifact2-a.jar")) artifact(project.file("artifact2-b.jar")) } @@ -141,12 +141,12 @@ class KotlinFragmentConfigurationDefinitionTest : AbstractKpmExtensionTest() { @Test fun `test definition + artifacts`() { - val definition = ConfigurationDefinition( + val definition = ConfigurationDefinition( provider = ConfigurationProvider { throw NotImplementedError() } ) - val artifacts1 = FragmentArtifacts {} - val artifacts2 = FragmentArtifacts {} + val artifacts1 = FragmentArtifacts {} + val artifacts2 = FragmentArtifacts {} val newDefinition = definition + artifacts1 + artifacts2 assertEquals( @@ -157,11 +157,11 @@ class KotlinFragmentConfigurationDefinitionTest : AbstractKpmExtensionTest() { @Test fun `test capability + capability`() { - val capabilities1 = FragmentCapabilities { + val capabilities1 = FragmentCapabilities { capability("capability1") } - val capabilities2 = FragmentCapabilities { + val capabilities2 = FragmentCapabilities { capability("capability2") } @@ -191,12 +191,12 @@ class KotlinFragmentConfigurationDefinitionTest : AbstractKpmExtensionTest() { @Test fun `test definition + capability`() { - val definition = ConfigurationDefinition( + val definition = ConfigurationDefinition( provider = ConfigurationProvider { throw NotImplementedError() } ) - val capabilities1 = FragmentCapabilities {} - val capabilities2 = FragmentCapabilities {} + val capabilities1 = FragmentCapabilities {} + val capabilities2 = FragmentCapabilities {} val newDefinition = definition + capabilities1 + capabilities2 assertEquals( diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/KotlinGradleModuleFragmentContainerTest.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/KotlinGradleModuleFragmentContainerTest.kt index 95fcd6678fe..e9928a4ecdc 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/KotlinGradleModuleFragmentContainerTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/KotlinGradleModuleFragmentContainerTest.kt @@ -16,12 +16,12 @@ class KotlinGradleModuleFragmentContainerTest : AbstractKpmExtensionTest() { @Test fun `test creating several different fragment types`() { - assertTrue(kotlin.main.fragments.create("some common") is KotlinGradleFragmentInternal) - kotlin.main.fragments.create("jvm") - kotlin.main.fragments.create("linuxX64") - kotlin.main.fragments.create("macosX64") - kotlin.main.fragments.create("macosArm64") - kotlin.main.fragments.create("iosX64") - kotlin.main.fragments.create("iosArm64") + assertTrue(kotlin.main.fragments.create("some common") is KpmGradleFragmentInternal) + kotlin.main.fragments.create("jvm") + kotlin.main.fragments.create("linuxX64") + kotlin.main.fragments.create("macosX64") + kotlin.main.fragments.create("macosArm64") + kotlin.main.fragments.create("iosX64") + kotlin.main.fragments.create("iosArm64") } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/KotlinJvmVariantFactoryTest.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/KotlinJvmVariantFactoryTest.kt index a2ef2c2e5df..0528340a748 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/KotlinJvmVariantFactoryTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/KotlinJvmVariantFactoryTest.kt @@ -151,8 +151,8 @@ class KotlinJvmVariantFactoryTest : AbstractKpmExtensionTest() { fun `test custom sourceDirectories configuration`() { val variant = KotlinJvmVariantFactory( kotlin.main, KotlinJvmVariantConfig( - sourceDirectoriesConfigurator = object : KotlinSourceDirectoriesConfigurator { - override fun configure(fragment: KotlinJvmVariant) { + sourceDirectoriesConfigurator = object : KotlinSourceDirectoriesConfigurator { + override fun configure(fragment: KpmJvmVariant) { fragment.kotlinSourceRoots.setSrcDirs(listOf(project.file("src/abc/kotlin"))) } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/KotlinNativeVariantFactoryTest.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/KotlinNativeVariantFactoryTest.kt index 91423c57c1c..28b6a533acc 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/KotlinNativeVariantFactoryTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/KotlinNativeVariantFactoryTest.kt @@ -25,7 +25,7 @@ class KotlinNativeVariantFactoryTest( @Suppress("unused") private val variantClassName: String ) : AbstractKpmExtensionTest() { - private lateinit var variant: KotlinNativeVariantInternal + private lateinit var variant: KpmNativeVariantInternal @BeforeTest fun createVariant() { @@ -87,12 +87,12 @@ class KotlinNativeVariantFactoryTest( @JvmStatic @Parameterized.Parameters(name = "{1}") fun data() = listOf( - KotlinLinuxX64Variant.constructor, - KotlinMacosX64Variant.constructor, - KotlinMacosX64Variant.constructor, - KotlinMacosArm64Variant.constructor, - KotlinIosX64Variant.constructor, - KotlinIosArm64Variant.constructor + KpmLinuxX64Variant.constructor, + KpmMacosX64Variant.constructor, + KpmMacosX64Variant.constructor, + KpmMacosArm64Variant.constructor, + KpmIosX64Variant.constructor, + KpmIosArm64Variant.constructor ).map { arrayOf(it, it.variantClass.simpleName) } } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinProjectModelSerializableTest.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinProjectModelSerializableTest.kt index 0e89af6cf43..d10c7a62d16 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinProjectModelSerializableTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/IdeaKotlinProjectModelSerializableTest.kt @@ -12,9 +12,9 @@ import org.jetbrains.kotlin.gradle.kpm.AbstractKpmExtensionTest import org.jetbrains.kotlin.gradle.kpm.buildIdeaKotlinProjectModel import org.jetbrains.kotlin.gradle.kpm.idea.testFixtures.deserialize import org.jetbrains.kotlin.gradle.kpm.idea.testFixtures.serialize -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinIosX64Variant -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinLinuxX64Variant -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinMacosX64Variant +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KpmIosX64Variant +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KpmLinuxX64Variant +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KpmMacosX64Variant import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.jvm import java.io.ByteArrayInputStream import java.io.ByteArrayOutputStream @@ -40,9 +40,9 @@ class IdeaKotlinProjectModelSerializableTest : AbstractKpmExtensionTest() { kotlin.mainAndTest { val native = fragments.create("native") val apple = fragments.create("apple") - val ios = fragments.create("ios") - val macos = fragments.create("macos") - val linux = fragments.create("linux") + val ios = fragments.create("ios") + val macos = fragments.create("macos") + val linux = fragments.create("linux") val jvm = jvm apple.refines(native) diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/MviKotlinIdeaDependencyResolutionTest.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/MviKotlinIdeaDependencyResolutionTest.kt index 9a55ba005d2..33927bfc950 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/MviKotlinIdeaDependencyResolutionTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/MviKotlinIdeaDependencyResolutionTest.kt @@ -31,10 +31,10 @@ class MviKotlinIdeaDependencyResolutionTest : AbstractLightweightIdeaDependencyR val kotlin = project.applyKpmPlugin { mainAndTest { - fragments.create("jvm", KotlinJvmVariant::class.java) - val linuxX64Variant = fragments.create("linuxX64", KotlinLinuxX64Variant::class.java) - val iosX64Variant = fragments.create("iosX64", KotlinIosX64Variant::class.java) - val iosArm64Variant = fragments.create("iosArm64", KotlinIosArm64Variant::class.java) + fragments.create("jvm", KpmJvmVariant::class.java) + val linuxX64Variant = fragments.create("linuxX64", KpmLinuxX64Variant::class.java) + val iosX64Variant = fragments.create("iosX64", KpmIosX64Variant::class.java) + val iosArm64Variant = fragments.create("iosArm64", KpmIosArm64Variant::class.java) val iosCommon = fragments.create("iosCommon") val nativeCommon = fragments.create("nativeCommon") diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/SimpleProjectToProjectDependencyResolutionTest.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/SimpleProjectToProjectDependencyResolutionTest.kt index 699879fa466..7737deaaac6 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/SimpleProjectToProjectDependencyResolutionTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/SimpleProjectToProjectDependencyResolutionTest.kt @@ -27,11 +27,11 @@ class SimpleProjectToProjectDependencyResolutionTest : AbstractLightweightIdeaDe producer.applyKpmPlugin { mainAndTest { - fragments.create("jvm", KotlinJvmVariant::class.java) - val linuxX64 = fragments.create("linuxX64", KotlinLinuxX64Variant::class.java) - val iosX64 = fragments.create("iosX64", KotlinIosX64Variant::class.java) - val iosArm64 = fragments.create("iosArm64", KotlinIosArm64Variant::class.java) - val macos64 = fragments.create("macosX64", KotlinMacosX64Variant::class.java) + fragments.create("jvm", KpmJvmVariant::class.java) + val linuxX64 = fragments.create("linuxX64", KpmLinuxX64Variant::class.java) + val iosX64 = fragments.create("iosX64", KpmIosX64Variant::class.java) + val iosArm64 = fragments.create("iosArm64", KpmIosArm64Variant::class.java) + val macos64 = fragments.create("macosX64", KpmMacosX64Variant::class.java) val iosCommon = fragments.create("iosMain") { it.refines(common) @@ -55,10 +55,10 @@ class SimpleProjectToProjectDependencyResolutionTest : AbstractLightweightIdeaDe val consumerKotlin = consumer.applyKpmPlugin { mainAndTest { - fragments.create("jvm", KotlinJvmVariant::class.java) - val linuxX64 = fragments.create("linuxX64", KotlinLinuxX64Variant::class.java) - val iosX64 = fragments.create("iosX64", KotlinIosX64Variant::class.java) - val macosX64 = fragments.create("macosX64", KotlinMacosX64Variant::class.java) + fragments.create("jvm", KpmJvmVariant::class.java) + val linuxX64 = fragments.create("linuxX64", KpmLinuxX64Variant::class.java) + val iosX64 = fragments.create("iosX64", KpmIosX64Variant::class.java) + val macosX64 = fragments.create("macosX64", KpmMacosX64Variant::class.java) val appleCommon = fragments.create("appleCommon") { it.refines(common) @@ -80,10 +80,10 @@ class SimpleProjectToProjectDependencyResolutionTest : AbstractLightweightIdeaDe consumerKotlin.buildIdeaKotlinProjectModel().assertIsNotEmpty().modules.forEach { module -> fun ifTestModule(vararg any: Any?) = - listOf(*any).takeIf { module.name == KotlinGradleModule.TEST_MODULE_NAME } + listOf(*any).takeIf { module.name == KpmGradleModule.TEST_MODULE_NAME } fun ifMainModule(vararg any: Any?) = - listOf(*any).takeIf { module.name == KotlinGradleModule.MAIN_MODULE_NAME } + listOf(*any).takeIf { module.name == KpmGradleModule.MAIN_MODULE_NAME } module.assertContainsFragment("common").assertFragmentDependencies( "regular::producer/main/common", diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/StdlibKotlinIdeaDependencyResolutionTest.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/StdlibKotlinIdeaDependencyResolutionTest.kt index 2b418ed7dd9..4c27bc0ae28 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/StdlibKotlinIdeaDependencyResolutionTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/StdlibKotlinIdeaDependencyResolutionTest.kt @@ -16,9 +16,9 @@ import org.jetbrains.kotlin.gradle.kpm.idea.testFixtures.assertContainsFragment import org.jetbrains.kotlin.gradle.kpm.idea.testFixtures.assertIsNotEmpty import org.jetbrains.kotlin.gradle.kpm.idea.testFixtures.assertResolvedBinaryDependencies import org.jetbrains.kotlin.gradle.plugin.getKotlinPluginVersion -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinIosArm64Variant -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinIosX64Variant -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinJvmVariant +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KpmIosArm64Variant +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KpmIosX64Variant +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KpmJvmVariant import org.junit.Test class StdlibKotlinIdeaDependencyResolutionTest : AbstractLightweightIdeaDependencyResolutionTest() { @@ -29,9 +29,9 @@ class StdlibKotlinIdeaDependencyResolutionTest : AbstractLightweightIdeaDependen val kotlin = project.applyKpmPlugin { mainAndTest { - fragments.create("jvm", KotlinJvmVariant::class.java) - val iosX64Variant = fragments.create("iosX64", KotlinIosX64Variant::class.java) - val iosArm64Variant = fragments.create("iosArm64", KotlinIosArm64Variant::class.java) + fragments.create("jvm", KpmJvmVariant::class.java) + val iosX64Variant = fragments.create("iosX64", KpmIosX64Variant::class.java) + val iosArm64Variant = fragments.create("iosArm64", KpmIosArm64Variant::class.java) val iosCommon = fragments.create("iosCommon") iosCommon.refines(common) @@ -73,9 +73,9 @@ class StdlibKotlinIdeaDependencyResolutionTest : AbstractLightweightIdeaDependen val kotlin = project.applyKpmPlugin { mainAndTest { - fragments.create("jvm", KotlinJvmVariant::class.java) - val iosX64Variant = fragments.create("iosX64", KotlinIosX64Variant::class.java) - val iosArm64Variant = fragments.create("iosArm64", KotlinIosArm64Variant::class.java) + fragments.create("jvm", KpmJvmVariant::class.java) + val iosX64Variant = fragments.create("iosX64", KpmIosX64Variant::class.java) + val iosArm64Variant = fragments.create("iosArm64", KpmIosArm64Variant::class.java) val iosCommon = fragments.create("iosCommon") iosCommon.refines(common) @@ -129,9 +129,9 @@ class StdlibKotlinIdeaDependencyResolutionTest : AbstractLightweightIdeaDependen val kotlin = project.applyKpmPlugin { mainAndTest { - fragments.create("jvm", KotlinJvmVariant::class.java) - val iosX64Variant = fragments.create("iosX64", KotlinIosX64Variant::class.java) - val iosArm64Variant = fragments.create("iosArm64", KotlinIosArm64Variant::class.java) + fragments.create("jvm", KpmJvmVariant::class.java) + val iosX64Variant = fragments.create("iosX64", KpmIosX64Variant::class.java) + val iosArm64Variant = fragments.create("iosArm64", KpmIosArm64Variant::class.java) val iosCommon = fragments.create("iosCommon") iosCommon.refines(common) diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/mpp/KpmCompilerPluginTest.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/mpp/KpmCompilerPluginTest.kt index d9da6ac9f03..becbb78ac0d 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/mpp/KpmCompilerPluginTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/mpp/KpmCompilerPluginTest.kt @@ -9,7 +9,7 @@ package org.jetbrains.kotlin.gradle.mpp import org.gradle.api.Project import org.gradle.api.artifacts.Configuration import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.GradleKpmCompilerPlugin -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinLinuxX64Variant +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KpmLinuxX64Variant import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.jvm import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinNativeCompile @@ -37,7 +37,7 @@ class KpmCompilerPluginTest { options = mapOf("a" to "c"), platformArtifact = "native-only" ) { - override fun forPlatformCompilation(variant: KotlinModuleVariant): PluginData? = + override fun forPlatformCompilation(variant: KpmVariant): PluginData? = if (variant.platform == KotlinPlatformTypeAttribute.NATIVE) { super.forPlatformCompilation(variant) } else { @@ -52,7 +52,7 @@ class KpmCompilerPluginTest { projectModel { main { jvm - val linuxX64 = fragments.create("linuxX64", KotlinLinuxX64Variant::class.java) + val linuxX64 = fragments.create("linuxX64", KpmLinuxX64Variant::class.java) val jvmAndLinux = fragments.create("jvmAndLinux") jvm.refines(jvmAndLinux) @@ -176,20 +176,20 @@ class KpmCompilerPluginTest { options = options.map { StringOption(it.key, it.value) } ) - override fun forMetadataCompilation(fragment: KotlinModuleFragment) = metadataArtifact?.let(::pluginData) + override fun forMetadataCompilation(fragment: KpmFragment) = metadataArtifact?.let(::pluginData) - override fun forNativeMetadataCompilation(fragment: KotlinModuleFragment) = metadataNativeArtifact?.let(::pluginData) + override fun forNativeMetadataCompilation(fragment: KpmFragment) = metadataNativeArtifact?.let(::pluginData) - override fun forPlatformCompilation(variant: KotlinModuleVariant) = platformArtifact?.let(::pluginData) + override fun forPlatformCompilation(variant: KpmVariant) = platformArtifact?.let(::pluginData) } open class TestPluginWithListeners : KpmCompilerPlugin, GradleKpmCompilerPlugin { override val kpmCompilerPlugin: KpmCompilerPlugin get() = this.also { onGetKpmCompilerPlugin() } override fun apply(target: Project) = onApply() - override fun forMetadataCompilation(fragment: KotlinModuleFragment): PluginData? = null.also { onPluginDataGet() } - override fun forNativeMetadataCompilation(fragment: KotlinModuleFragment): PluginData? = null.also { onPluginDataGet() } - override fun forPlatformCompilation(variant: KotlinModuleVariant): PluginData? = null.also { onPluginDataGet() } + override fun forMetadataCompilation(fragment: KpmFragment): PluginData? = null.also { onPluginDataGet() } + override fun forNativeMetadataCompilation(fragment: KpmFragment): PluginData? = null.also { onPluginDataGet() } + override fun forPlatformCompilation(variant: KpmVariant): PluginData? = null.also { onPluginDataGet() } companion object { var onApply: () -> Unit = {} @@ -198,4 +198,4 @@ class KpmCompilerPluginTest { } } -} \ No newline at end of file +} diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/sources/kpm/MultiplatformSourceSetMappedFragmentLocatorTest.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/sources/kpm/MultiplatformSourceSetMappedFragmentLocatorTest.kt index 01db04ac2a2..cf59a33c3ef 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/sources/kpm/MultiplatformSourceSetMappedFragmentLocatorTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/sources/kpm/MultiplatformSourceSetMappedFragmentLocatorTest.kt @@ -14,7 +14,7 @@ import kotlin.test.Test import kotlin.test.assertEquals import org.jetbrains.kotlin.gradle.plugin.sources.kpm.MultiplatformSourceSetMappedFragmentLocator import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider -import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinGradleModule +import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KpmGradleModule import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.kpmModules import org.jetbrains.kotlin.gradle.plugin.sources.kpm.SourceSetMappedFragmentLocator @@ -42,17 +42,17 @@ internal open class MultiplatformSourceSetMappedFragmentLocatorTest : Multiplatf @Test fun `name with one part is returned as fragment name with main module`() { - doTest("foo", "foo", KotlinGradleModule.MAIN_MODULE_NAME) + doTest("foo", "foo", KpmGradleModule.MAIN_MODULE_NAME) } @Test fun `main is truncated from name`() { - doTest("fooBarMain", "fooBar", KotlinGradleModule.MAIN_MODULE_NAME) + doTest("fooBarMain", "fooBar", KpmGradleModule.MAIN_MODULE_NAME) } @Test fun `module chosen for test fragment`() { - doTest("abcDefGhiTest", "abcDefGhi", KotlinGradleModule.TEST_MODULE_NAME) + doTest("abcDefGhiTest", "abcDefGhi", KpmGradleModule.TEST_MODULE_NAME) } @Test @@ -60,12 +60,12 @@ internal open class MultiplatformSourceSetMappedFragmentLocatorTest : Multiplatf val nameWithDigits = "testDigits123Accepted123" project.kpmModules.create(nameWithDigits) doTest("foo${nameWithDigits.capitalize()}", "foo", nameWithDigits) - doTest("${nameWithDigits}Main", nameWithDigits, KotlinGradleModule.MAIN_MODULE_NAME) + doTest("${nameWithDigits}Main", nameWithDigits, KpmGradleModule.MAIN_MODULE_NAME) } @Test fun `capitalized name handling`() { - doTest("IAmTheMain", "IAmThe", KotlinGradleModule.MAIN_MODULE_NAME) + doTest("IAmTheMain", "IAmThe", KpmGradleModule.MAIN_MODULE_NAME) } @Test @@ -78,7 +78,7 @@ internal open class MultiplatformSourceSetMappedFragmentLocatorTest : Multiplatf // also check for the same logic in fragments that go to main if no suffix matched: val nameForMain = "fooBarBaz" - doTest(nameForMain, nameForMain, KotlinGradleModule.MAIN_MODULE_NAME) + doTest(nameForMain, nameForMain, KpmGradleModule.MAIN_MODULE_NAME) val moduleSuffixName = "barBaz" project.kpmModules.create(moduleSuffixName) doTest(nameForMain, "foo", moduleSuffixName) @@ -95,12 +95,12 @@ internal class MultiplatformSourceSetMappedFragmentLocatorTestWithAndroid : Mult @Test fun `android source set names`() { - doTest("androidMain", "android", KotlinGradleModule.MAIN_MODULE_NAME) - doTest("androidTest", "android", KotlinGradleModule.TEST_MODULE_NAME) - doTest("androidAndroidTest", "androidAndroid", KotlinGradleModule.TEST_MODULE_NAME) + doTest("androidMain", "android", KpmGradleModule.MAIN_MODULE_NAME) + doTest("androidTest", "android", KpmGradleModule.TEST_MODULE_NAME) + doTest("androidAndroidTest", "androidAndroid", KpmGradleModule.TEST_MODULE_NAME) - doTest("androidDebug", "androidDebug", KotlinGradleModule.MAIN_MODULE_NAME) - doTest("androidDebugTest", "androidDebug", KotlinGradleModule.TEST_MODULE_NAME) - doTest("androidDebugAndroidTest", "androidDebugAndroid", KotlinGradleModule.TEST_MODULE_NAME) + doTest("androidDebug", "androidDebug", KpmGradleModule.MAIN_MODULE_NAME) + doTest("androidDebugTest", "androidDebug", KpmGradleModule.TEST_MODULE_NAME) + doTest("androidDebugAndroidTest", "androidDebugAndroid", KpmGradleModule.TEST_MODULE_NAME) } -} \ No newline at end of file +} diff --git a/libraries/tools/kotlin-project-model/src/main/kotlin/DependencyResolution.kt b/libraries/tools/kotlin-project-model/src/main/kotlin/DependencyResolution.kt index e68fd89ccd5..1519fb51510 100644 --- a/libraries/tools/kotlin-project-model/src/main/kotlin/DependencyResolution.kt +++ b/libraries/tools/kotlin-project-model/src/main/kotlin/DependencyResolution.kt @@ -8,23 +8,7 @@ package org.jetbrains.kotlin.project.model // TODO ensure that resolvers are pluggable + custom dependency kinds (& result kinds?) // TODO think about state management: unresolved -> (known dependency graph?) ... -> completely resolved // it seems to be important to learn whether or not the model is final -interface ModuleDependencyResolver { - fun resolveDependency(requestingModule: KotlinModule, moduleDependency: KotlinModuleDependency): KotlinModule? +interface KpmModuleDependencyResolver { + fun resolveDependency(requestingModule: KpmModule, moduleDependency: KpmModuleDependency): KpmModule? } -interface KotlinDependencyGraphResolver { - fun resolveDependencyGraph(requestingModule: KotlinModule): DependencyGraphResolution -} - -sealed class DependencyGraphResolution(open val requestingModule: KotlinModule) { - class Unknown(requestingModule: KotlinModule) : DependencyGraphResolution(requestingModule) - open class DependencyGraph(requestingModule: KotlinModule, open val root: DependencyGraphNode): DependencyGraphResolution(requestingModule) -} - -// TODO: should this be a single graph for all dependency scopes as well, not just for all fragments? -open class DependencyGraphNode( - open val module: KotlinModule, - open val dependenciesByFragment: Map> -) { - override fun toString(): String = "node ${module}" -} \ No newline at end of file diff --git a/libraries/tools/kotlin-project-model/src/main/kotlin/KotlinModule.kt b/libraries/tools/kotlin-project-model/src/main/kotlin/KotlinModule.kt index a9deacdd482..57b03fb908f 100644 --- a/libraries/tools/kotlin-project-model/src/main/kotlin/KotlinModule.kt +++ b/libraries/tools/kotlin-project-model/src/main/kotlin/KotlinModule.kt @@ -5,53 +5,25 @@ package org.jetbrains.kotlin.project.model -import java.io.Serializable - -sealed class KotlinModuleIdentifier(open val moduleClassifier: String?): Serializable - -// TODO consider id: Any, to allow IDs with custom equality? -data class LocalModuleIdentifier( - val buildId: String, - val projectId: String, - override val moduleClassifier: String? -) : KotlinModuleIdentifier(moduleClassifier) { - companion object { - private const val SINGLE_BUILD_ID = ":" - } - - override fun toString(): String = - "project '$projectId'" + - moduleClassifier?.let { " / $it" }.orEmpty() + - buildId.takeIf { it != SINGLE_BUILD_ID }?.let { "(build '$it')" }.orEmpty() -} - -data class MavenModuleIdentifier( - val group: String, - val name: String, - override val moduleClassifier: String? -) : KotlinModuleIdentifier(moduleClassifier) { - override fun toString(): String = "$group:$name" + moduleClassifier?.let { " / $it" }.orEmpty() -} - // TODO Gradle allows having multiple capabilities in a published module, we need to figure out how we can include them in the module IDs -interface KotlinModule { - val moduleIdentifier: KotlinModuleIdentifier +interface KpmModule { + val moduleIdentifier: KpmModuleIdentifier - val fragments: Iterable + val fragments: Iterable - val variants: Iterable - get() = fragments.filterIsInstance() + val variants: Iterable + get() = fragments.filterIsInstance() val plugins: Iterable // TODO: isSynthetic? } -open class BasicKotlinModule( - override val moduleIdentifier: KotlinModuleIdentifier -) : KotlinModule { - override val fragments = mutableListOf() +open class KpmBasicModule( + override val moduleIdentifier: KpmModuleIdentifier +) : KpmModule { + override val fragments = mutableListOf() override val plugins = mutableListOf() diff --git a/libraries/tools/kotlin-project-model/src/main/kotlin/KotlinModuleDependency.kt b/libraries/tools/kotlin-project-model/src/main/kotlin/KotlinModuleDependency.kt index f2be292f030..66543b67a30 100644 --- a/libraries/tools/kotlin-project-model/src/main/kotlin/KotlinModuleDependency.kt +++ b/libraries/tools/kotlin-project-model/src/main/kotlin/KotlinModuleDependency.kt @@ -5,7 +5,7 @@ package org.jetbrains.kotlin.project.model -data class KotlinModuleDependency(val moduleIdentifier: KotlinModuleIdentifier) { +data class KpmModuleDependency(val moduleIdentifier: KpmModuleIdentifier) { override fun toString(): String = "dependency $moduleIdentifier" } diff --git a/libraries/tools/kotlin-project-model/src/main/kotlin/KotlinModuleFragment.kt b/libraries/tools/kotlin-project-model/src/main/kotlin/KotlinModuleFragment.kt index de38f42ed83..004f77ca7e7 100644 --- a/libraries/tools/kotlin-project-model/src/main/kotlin/KotlinModuleFragment.kt +++ b/libraries/tools/kotlin-project-model/src/main/kotlin/KotlinModuleFragment.kt @@ -10,28 +10,31 @@ import org.jetbrains.kotlin.tooling.core.closure import org.jetbrains.kotlin.tooling.core.withClosure import java.io.File -interface KotlinModuleFragment { - val containingModule: KotlinModule +interface KpmFragment { + val containingModule: KpmModule val fragmentName: String - val directRefinesDependencies: Iterable val languageSettings: LanguageSettings? - // TODO: scopes - val declaredModuleDependencies: Iterable - // TODO: should this be source roots or source files? val kotlinSourceRoots: Iterable + // TODO: scopes + val declaredModuleDependencies: Iterable + + val declaredRefinesDependencies: Iterable + + val refinesClosure: Set + get() = this.closure { it.declaredRefinesDependencies } + + val withRefinesClosure: Set + get() = this.withClosure { it.declaredRefinesDependencies } + companion object } -interface KotlinModuleVariant : KotlinModuleFragment { - val variantAttributes: Map -} - -val KotlinModuleFragment.fragmentAttributeSets: Map> +val KpmFragment.fragmentAttributeSets: Map> get() = mutableMapOf>().apply { containingModule.variantsContainingFragment(this@fragmentAttributeSets).forEach { variant -> variant.variantAttributes.forEach { (attribute, value) -> @@ -40,37 +43,20 @@ val KotlinModuleFragment.fragmentAttributeSets: Map - get() = this.closure { it.directRefinesDependencies } +val KpmVariant.platform get() = variantAttributes[KotlinPlatformTypeAttribute] -val KotlinModuleFragment.withRefinesClosure: Set - get() = this.withClosure { it.directRefinesDependencies } - -val KotlinModuleVariant.platform get() = variantAttributes[KotlinPlatformTypeAttribute] - -open class BasicKotlinModuleFragment( - override val containingModule: KotlinModule, +open class KpmBasicFragment( + override val containingModule: KpmModule, override val fragmentName: String, override val languageSettings: LanguageSettings? = null -) : KotlinModuleFragment { +) : KpmFragment { - override val directRefinesDependencies: MutableSet = mutableSetOf() + override val declaredRefinesDependencies: MutableSet = mutableSetOf() - override val declaredModuleDependencies: MutableSet = mutableSetOf() + override val declaredModuleDependencies: MutableSet = mutableSetOf() override var kotlinSourceRoots: Iterable = emptyList() + override fun toString(): String = "fragment $fragmentName" } -class BasicKotlinModuleVariant( - containingModule: KotlinModule, - fragmentName: String, - languageSettings: LanguageSettings? = null -) : BasicKotlinModuleFragment( - containingModule, - fragmentName, - languageSettings -), KotlinModuleVariant { - override val variantAttributes: MutableMap = mutableMapOf() - override fun toString(): String = "variant $fragmentName" -} diff --git a/libraries/tools/kotlin-project-model/src/main/kotlin/KpmCompilerPlugin.kt b/libraries/tools/kotlin-project-model/src/main/kotlin/KpmCompilerPlugin.kt index 6614d505e1d..4b27cd7221f 100644 --- a/libraries/tools/kotlin-project-model/src/main/kotlin/KpmCompilerPlugin.kt +++ b/libraries/tools/kotlin-project-model/src/main/kotlin/KpmCompilerPlugin.kt @@ -18,19 +18,19 @@ interface KpmCompilerPlugin { * Returns [PluginData] when applicable for [fragment] compilation * Returns [null] if not applicable */ - fun forMetadataCompilation(fragment: KotlinModuleFragment): PluginData? + fun forMetadataCompilation(fragment: KpmFragment): PluginData? /** * Returns [PluginData] when applicable for [fragment] compilation * Returns [null] if not applicable */ - fun forNativeMetadataCompilation(fragment: KotlinModuleFragment): PluginData? + fun forNativeMetadataCompilation(fragment: KpmFragment): PluginData? /** * Returns [PluginData] when applicable for [variant] compilation * Returns [null] if not applicable */ - fun forPlatformCompilation(variant: KotlinModuleVariant): PluginData? + fun forPlatformCompilation(variant: KpmVariant): PluginData? } /** @@ -79,17 +79,17 @@ data class FilesOption( // TODO: It should be part of "Compilation Process": KotlinModule.compilationRequestFor(METADATA | PLATFORM) -> CompilationRequest // But there is no such thing at the moment :) -fun KotlinModuleFragment.metadataCompilationPluginData(): List = +fun KpmFragment.metadataCompilationPluginData(): List = containingModule .plugins .mapNotNull { plugin -> plugin.forMetadataCompilation(this) } -fun KotlinModuleFragment.nativeMetadataCompilationPluginData(): List = +fun KpmFragment.nativeMetadataCompilationPluginData(): List = containingModule .plugins .mapNotNull { plugin -> plugin.forNativeMetadataCompilation(this) } -fun KotlinModuleVariant.platformCompilationPluginData(): List = +fun KpmVariant.platformCompilationPluginData(): List = containingModule .plugins .mapNotNull { plugin -> plugin.forPlatformCompilation(this) } @@ -108,11 +108,11 @@ abstract class BasicKpmCompilerPlugin : KpmCompilerPlugin { protected abstract val pluginOptions: List - override fun forMetadataCompilation(fragment: KotlinModuleFragment) = pluginDataOrNull(commonPluginArtifact()) + override fun forMetadataCompilation(fragment: KpmFragment) = pluginDataOrNull(commonPluginArtifact()) - override fun forNativeMetadataCompilation(fragment: KotlinModuleFragment) = pluginDataOrNull(nativePluginArtifact()) + override fun forNativeMetadataCompilation(fragment: KpmFragment) = pluginDataOrNull(nativePluginArtifact()) - override fun forPlatformCompilation(variant: KotlinModuleVariant) = + override fun forPlatformCompilation(variant: KpmVariant) = when (variant.platform) { KotlinPlatformTypeAttribute.NATIVE -> nativePluginArtifact() else -> commonPluginArtifact() diff --git a/libraries/tools/kotlin-project-model/src/main/kotlin/KpmDependencyGraphResolver.kt b/libraries/tools/kotlin-project-model/src/main/kotlin/KpmDependencyGraphResolver.kt new file mode 100644 index 00000000000..0306da5ea53 --- /dev/null +++ b/libraries/tools/kotlin-project-model/src/main/kotlin/KpmDependencyGraphResolver.kt @@ -0,0 +1,25 @@ +/* + * 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.project.model + +interface KpmDependencyGraphResolver { + fun resolveDependencyGraph(requestingModule: KpmModule): KpmDependencyGraphResolution +} + +sealed class KpmDependencyGraphResolution(open val requestingModule: KpmModule) { + class Unknown(requestingModule: KpmModule) : KpmDependencyGraphResolution(requestingModule) + open class KpmDependencyGraph( + requestingModule: KpmModule, open val root: KpmDependencyGraphNode + ) : KpmDependencyGraphResolution(requestingModule) +} + +// TODO: should this be a single graph for all dependency scopes as well, not just for all fragments? +open class KpmDependencyGraphNode( + open val module: KpmModule, + open val dependenciesByFragment: Map> +) { + override fun toString(): String = "node ${module}" +} diff --git a/libraries/tools/kotlin-project-model/src/main/kotlin/KpmModuleIdentifier.kt b/libraries/tools/kotlin-project-model/src/main/kotlin/KpmModuleIdentifier.kt new file mode 100644 index 00000000000..e10a19a88e3 --- /dev/null +++ b/libraries/tools/kotlin-project-model/src/main/kotlin/KpmModuleIdentifier.kt @@ -0,0 +1,33 @@ +/* + * 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.project.model + +import java.io.Serializable + +sealed class KpmModuleIdentifier(open val moduleClassifier: String?) : Serializable + +data class KpmLocalModuleIdentifier( + val buildId: String, + val projectId: String, + override val moduleClassifier: String? +) : KpmModuleIdentifier(moduleClassifier) { + companion object { + private const val SINGLE_BUILD_ID = ":" + } + + override fun toString(): String = + "project '$projectId'" + + moduleClassifier?.let { " / $it" }.orEmpty() + + buildId.takeIf { it != SINGLE_BUILD_ID }?.let { "(build '$it')" }.orEmpty() +} + +data class KpmMavenModuleIdentifier( + val group: String, + val name: String, + override val moduleClassifier: String? +) : KpmModuleIdentifier(moduleClassifier) { + override fun toString(): String = "$group:$name" + moduleClassifier?.let { " / $it" }.orEmpty() +} diff --git a/libraries/tools/kotlin-project-model/src/main/kotlin/KpmVariant.kt b/libraries/tools/kotlin-project-model/src/main/kotlin/KpmVariant.kt new file mode 100644 index 00000000000..70d53eeffc5 --- /dev/null +++ b/libraries/tools/kotlin-project-model/src/main/kotlin/KpmVariant.kt @@ -0,0 +1,19 @@ +/* + * 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.project.model + +interface KpmVariant : KpmFragment { + val variantAttributes: Map +} + +class KpmBasicVariant( + containingModule: KpmModule, fragmentName: String, languageSettings: LanguageSettings? = null +) : KpmBasicFragment( + containingModule, fragmentName, languageSettings +), KpmVariant { + override val variantAttributes: MutableMap = mutableMapOf() + override fun toString(): String = "variant $fragmentName" +} diff --git a/libraries/tools/kotlin-project-model/src/main/kotlin/LanguageSettings.kt b/libraries/tools/kotlin-project-model/src/main/kotlin/LanguageSettings.kt index 20a948bf4a6..e4517461132 100644 --- a/libraries/tools/kotlin-project-model/src/main/kotlin/LanguageSettings.kt +++ b/libraries/tools/kotlin-project-model/src/main/kotlin/LanguageSettings.kt @@ -10,6 +10,5 @@ interface LanguageSettings { val apiVersion: String? val progressiveMode: Boolean val enabledLanguageFeatures: Set - val optInAnnotationsInUse: Set } diff --git a/libraries/tools/kotlin-project-model/src/main/kotlin/ModuleFragmentsResolver.kt b/libraries/tools/kotlin-project-model/src/main/kotlin/ModuleFragmentsResolver.kt index 98049fb46e6..83c23ebdde6 100644 --- a/libraries/tools/kotlin-project-model/src/main/kotlin/ModuleFragmentsResolver.kt +++ b/libraries/tools/kotlin-project-model/src/main/kotlin/ModuleFragmentsResolver.kt @@ -9,24 +9,24 @@ import org.jetbrains.kotlin.project.model.utils.variantsContainingFragment interface ModuleFragmentsResolver { fun getChosenFragments( - requestingFragment: KotlinModuleFragment, - dependencyModule: KotlinModule + requestingFragment: KpmFragment, + dependencyModule: KpmModule ): FragmentResolution } -sealed class FragmentResolution(val requestingFragment: KotlinModuleFragment, val dependencyModule: KotlinModule) { +sealed class FragmentResolution(val requestingFragment: KpmFragment, val dependencyModule: KpmModule) { class ChosenFragments( - requestingFragment: KotlinModuleFragment, - dependencyModule: KotlinModule, - val visibleFragments: Iterable, + requestingFragment: KpmFragment, + dependencyModule: KpmModule, + val visibleFragments: Iterable, val variantResolutions: Iterable ) : FragmentResolution(requestingFragment, dependencyModule) - class NotRequested(requestingFragment: KotlinModuleFragment, dependencyModule: KotlinModule) : + class NotRequested(requestingFragment: KpmFragment, dependencyModule: KpmModule) : FragmentResolution(requestingFragment, dependencyModule) // TODO: think about restricting calls with the type system to avoid partial functions in resolvers? - class Unknown(requestingFragment: KotlinModuleFragment, dependencyModule: KotlinModule) : + class Unknown(requestingFragment: KpmFragment, dependencyModule: KpmModule) : FragmentResolution(requestingFragment, dependencyModule) } @@ -34,8 +34,8 @@ class DefaultModuleFragmentsResolver( private val variantResolver: ModuleVariantResolver ) : ModuleFragmentsResolver { override fun getChosenFragments( - requestingFragment: KotlinModuleFragment, - dependencyModule: KotlinModule + requestingFragment: KpmFragment, + dependencyModule: KpmModule ): FragmentResolution { val dependingModule = requestingFragment.containingModule val containingVariants = dependingModule.variantsContainingFragment(requestingFragment) @@ -55,7 +55,7 @@ class DefaultModuleFragmentsResolver( } val result = if (chosenFragments.isEmpty()) - emptyList() + emptyList() else chosenFragments // Note this emulates the existing behavior that is lenient wrt to unresolved modules, but gives imprecise results. TODO revisit .filter { it.isNotEmpty() } diff --git a/libraries/tools/kotlin-project-model/src/main/kotlin/ModuleVariantResolver.kt b/libraries/tools/kotlin-project-model/src/main/kotlin/ModuleVariantResolver.kt index ac315303c68..3ed1ab8f1ac 100644 --- a/libraries/tools/kotlin-project-model/src/main/kotlin/ModuleVariantResolver.kt +++ b/libraries/tools/kotlin-project-model/src/main/kotlin/ModuleVariantResolver.kt @@ -20,7 +20,7 @@ interface ModuleVariantResolver { * In this case it should return [VariantResolution.Unknown], and the caller (which might be an aggregating [ModuleVariantResolver]) * may consult other sources to get the variant match. */ - fun getChosenVariant(requestingVariant: KotlinModuleVariant, dependencyModule: KotlinModule): VariantResolution + fun getChosenVariant(requestingVariant: KpmVariant, dependencyModule: KpmModule): VariantResolution } /** @@ -28,14 +28,14 @@ interface ModuleVariantResolver { * usually done by some [ModuleVariantResolver]. */ sealed class VariantResolution( - val requestingVariant: KotlinModuleVariant, - val dependencyModule: KotlinModule + val requestingVariant: KpmVariant, + val dependencyModule: KpmModule ) { companion object { fun fromMatchingVariants( - requestingVariant: KotlinModuleVariant, - dependencyModule: KotlinModule, - matchingVariants: Collection + requestingVariant: KpmVariant, + dependencyModule: KpmModule, + matchingVariants: Collection ) = when (matchingVariants.size) { 0 -> NoVariantMatch(requestingVariant, dependencyModule) 1 -> VariantMatch(requestingVariant, dependencyModule, matchingVariants.single()) @@ -55,20 +55,20 @@ sealed class VariantResolution( * The resolver decided that the [chosenVariant] is the best variant match. */ class VariantMatch( - requestingVariant: KotlinModuleVariant, - dependencyModule: KotlinModule, - val chosenVariant: KotlinModuleVariant + requestingVariant: KpmVariant, + dependencyModule: KpmModule, + val chosenVariant: KpmVariant ) : VariantResolution(requestingVariant, dependencyModule) // TODO: think about restricting calls with the type system to avoid partial functions in resolvers? - class Unknown(requestingVariant: KotlinModuleVariant, dependencyModule: KotlinModule) : + class Unknown(requestingVariant: KpmVariant, dependencyModule: KpmModule) : VariantResolution(requestingVariant, dependencyModule) /** * Returned when the resolver detects that the [requestingVariant] does not depend on [dependencyModule] and therefore should not get * any variant of that module at all. */ - class NotRequested(requestingVariant: KotlinModuleVariant, dependencyModule: KotlinModule) : + class NotRequested(requestingVariant: KpmVariant, dependencyModule: KpmModule) : VariantResolution(requestingVariant, dependencyModule) /** @@ -76,8 +76,8 @@ sealed class VariantResolution( * done externally and the external system did not provide any details of the failure. */ class NoVariantMatch( - requestingVariant: KotlinModuleVariant, - dependencyModule: KotlinModule + requestingVariant: KpmVariant, + dependencyModule: KpmModule ) : VariantResolution(requestingVariant, dependencyModule) /** @@ -85,8 +85,8 @@ sealed class VariantResolution( * best match for the [requestingVariant]. */ class AmbiguousVariants( - requestingVariant: KotlinModuleVariant, - dependencyModule: KotlinModule, - val matchingVariants: Iterable + requestingVariant: KpmVariant, + dependencyModule: KpmModule, + val matchingVariants: Iterable ) : VariantResolution(requestingVariant, dependencyModule) -} \ No newline at end of file +} diff --git a/libraries/tools/kotlin-project-model/src/main/kotlin/utils/KotlinModuleUtils.kt b/libraries/tools/kotlin-project-model/src/main/kotlin/utils/KotlinModuleUtils.kt index 4c4c500842f..f08e4ab2d49 100644 --- a/libraries/tools/kotlin-project-model/src/main/kotlin/utils/KotlinModuleUtils.kt +++ b/libraries/tools/kotlin-project-model/src/main/kotlin/utils/KotlinModuleUtils.kt @@ -5,17 +5,16 @@ package org.jetbrains.kotlin.project.model.utils -import org.jetbrains.kotlin.project.model.KotlinModule -import org.jetbrains.kotlin.project.model.KotlinModuleFragment -import org.jetbrains.kotlin.project.model.KotlinModuleVariant -import org.jetbrains.kotlin.project.model.withRefinesClosure +import org.jetbrains.kotlin.project.model.KpmModule +import org.jetbrains.kotlin.project.model.KpmFragment +import org.jetbrains.kotlin.project.model.KpmVariant import org.jetbrains.kotlin.tooling.core.closure -fun KotlinModule.variantsContainingFragment(fragment: KotlinModuleFragment): Iterable = +fun KpmModule.variantsContainingFragment(fragment: KpmFragment): Iterable = variants.filter { variant -> fragment in variant.withRefinesClosure } -fun KotlinModule.findRefiningFragments(fragment: KotlinModuleFragment): Iterable { +fun KpmModule.findRefiningFragments(fragment: KpmFragment): Iterable { return fragment.closure { seedFragment -> - fragments.filter { otherFragment -> seedFragment in otherFragment.directRefinesDependencies } + fragments.filter { otherFragment -> seedFragment in otherFragment.declaredRefinesDependencies } } } diff --git a/libraries/tools/kotlin-project-model/src/test/kotlin/org/jetbrains/kotlin/project/model/DummyVariantMatchingImplementations.kt b/libraries/tools/kotlin-project-model/src/test/kotlin/org/jetbrains/kotlin/project/model/DummyVariantMatchingImplementations.kt index 16976ae7625..47588f9272c 100644 --- a/libraries/tools/kotlin-project-model/src/test/kotlin/org/jetbrains/kotlin/project/model/DummyVariantMatchingImplementations.kt +++ b/libraries/tools/kotlin-project-model/src/test/kotlin/org/jetbrains/kotlin/project/model/DummyVariantMatchingImplementations.kt @@ -6,7 +6,7 @@ package org.jetbrains.kotlin.project.model class MatchVariantsByExactAttributes : ModuleVariantResolver { - override fun getChosenVariant(requestingVariant: KotlinModuleVariant, dependencyModule: KotlinModule): VariantResolution { + override fun getChosenVariant(requestingVariant: KpmVariant, dependencyModule: KpmModule): VariantResolution { val candidates = dependencyModule.variants return candidates.filter { candidate -> candidate.variantAttributes.all { (attributeKey, candidateValue) -> @@ -15,4 +15,4 @@ class MatchVariantsByExactAttributes : ModuleVariantResolver { } }.let { VariantResolution.fromMatchingVariants(requestingVariant, dependencyModule, it) } } -} \ No newline at end of file +} diff --git a/libraries/tools/kotlin-project-model/src/test/kotlin/org/jetbrains/kotlin/project/model/SimpleModel.kt b/libraries/tools/kotlin-project-model/src/test/kotlin/org/jetbrains/kotlin/project/model/SimpleModel.kt index 55ac3f3804b..4c0584bf7dd 100644 --- a/libraries/tools/kotlin-project-model/src/test/kotlin/org/jetbrains/kotlin/project/model/SimpleModel.kt +++ b/libraries/tools/kotlin-project-model/src/test/kotlin/org/jetbrains/kotlin/project/model/SimpleModel.kt @@ -5,57 +5,57 @@ package org.jetbrains.kotlin.project.model -fun module(name: String, classifier: String? = null) = BasicKotlinModule(LocalModuleIdentifier("current", name, classifier)) +fun module(name: String, classifier: String? = null) = KpmBasicModule(KpmLocalModuleIdentifier("current", name, classifier)) -fun BasicKotlinModule.fragment(vararg nameParts: String): BasicKotlinModuleFragment = +fun KpmBasicModule.fragment(vararg nameParts: String): KpmBasicFragment = fragment(nameParts.drop(1).joinToString("", nameParts.first()) { it.capitalize() }) -fun BasicKotlinModule.fragment(name: String): BasicKotlinModuleFragment = - fragments.firstOrNull { it.fragmentName == name } ?: BasicKotlinModuleFragment(this, name).also { fragments.add(it) } +fun KpmBasicModule.fragment(name: String): KpmBasicFragment = + fragments.firstOrNull { it.fragmentName == name } ?: KpmBasicFragment(this, name).also { fragments.add(it) } -fun BasicKotlinModule.variant(vararg nameParts: String): BasicKotlinModuleVariant = +fun KpmBasicModule.variant(vararg nameParts: String): KpmBasicVariant = variant(nameParts.drop(1).joinToString("", nameParts.first()) { it.capitalize() }) -fun BasicKotlinModule.variant(name: String): BasicKotlinModuleVariant = +fun KpmBasicModule.variant(name: String): KpmBasicVariant = fragments.firstOrNull { it.fragmentName == name } - ?.let { it as? BasicKotlinModuleVariant ?: error("$name is not a variant") } - ?: BasicKotlinModuleVariant(this, name).also { fragments.add(it) } + ?.let { it as? KpmBasicVariant ?: error("$name is not a variant") } + ?: KpmBasicVariant(this, name).also { fragments.add(it) } -fun KotlinModuleIdentifier.equalsWithoutClassifier(other: KotlinModuleIdentifier) = when (this) { - is LocalModuleIdentifier -> other is LocalModuleIdentifier && - LocalModuleIdentifier(buildId, projectId, null) == LocalModuleIdentifier(other.buildId, other.projectId, null) - is MavenModuleIdentifier -> other is MavenModuleIdentifier && - MavenModuleIdentifier(group, name, null) == MavenModuleIdentifier(other.group, other.name, null) +fun KpmModuleIdentifier.equalsWithoutClassifier(other: KpmModuleIdentifier) = when (this) { + is KpmLocalModuleIdentifier -> other is KpmLocalModuleIdentifier && + KpmLocalModuleIdentifier(buildId, projectId, null) == KpmLocalModuleIdentifier(other.buildId, other.projectId, null) + is KpmMavenModuleIdentifier -> other is KpmMavenModuleIdentifier && + KpmMavenModuleIdentifier(group, name, null) == KpmMavenModuleIdentifier(other.group, other.name, null) else -> error("can't check equality yet") } -fun BasicKotlinModuleFragment.depends(module: BasicKotlinModule) { - this.declaredModuleDependencies += KotlinModuleDependency(module.moduleIdentifier) +fun KpmBasicFragment.depends(module: KpmBasicModule) { + this.declaredModuleDependencies += KpmModuleDependency(module.moduleIdentifier) } -fun BasicKotlinModuleFragment.refinedBy(fragment: BasicKotlinModuleFragment) { +fun KpmBasicFragment.refinedBy(fragment: KpmBasicFragment) { fragment.refines(this) } -fun BasicKotlinModuleFragment.refines(fragment: BasicKotlinModuleFragment) { +fun KpmBasicFragment.refines(fragment: KpmBasicFragment) { require(fragment.containingModule == containingModule) - directRefinesDependencies.add(fragment) + declaredRefinesDependencies.add(fragment) } // --- -internal data class ModuleBundle(val modules: List) { - val main: BasicKotlinModule +internal data class ModuleBundle(val modules: List) { + val main: KpmBasicModule get() = modules.single { it.moduleIdentifier.moduleClassifier == null } - operator fun get(modulePurpose: String): BasicKotlinModule = when (modulePurpose) { + operator fun get(modulePurpose: String): KpmBasicModule = when (modulePurpose) { "main" -> main else -> modules.single { it.moduleIdentifier.moduleClassifier == modulePurpose } } } internal fun simpleModuleBundle(name: String): ModuleBundle { - fun createModule(purpose: String): BasicKotlinModule = + fun createModule(purpose: String): KpmBasicModule = module(name, purpose.takeIf { it != "main" }).apply { val common = fragment("common") @@ -90,4 +90,4 @@ internal fun simpleModuleBundle(name: String): ModuleBundle { test.fragment("common").depends(main) return ModuleBundle(listOf(main, test)) -} \ No newline at end of file +}