KT-MR-5666 Minor fixes, refactorings & formatting
This commit is contained in:
+2
-1
@@ -13,6 +13,7 @@ import org.gradle.api.internal.plugins.DslObject
|
||||
import org.gradle.jvm.toolchain.JavaToolchainSpec
|
||||
import org.gradle.util.ConfigureUtil
|
||||
import org.jetbrains.kotlin.gradle.plugin.*
|
||||
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.Companion.kotlinPropertiesProvider
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTarget
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsSingleTargetPreset
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinWithJavaTarget
|
||||
@@ -120,7 +121,7 @@ open class KotlinProjectExtension @Inject constructor(project: Project) : Kotlin
|
||||
}
|
||||
|
||||
internal val kpmModelContainer by lazy {
|
||||
if (PropertiesProvider(project).experimentalKpmModelMapping) {
|
||||
if (project.kotlinPropertiesProvider.experimentalKpmModelMapping) {
|
||||
DefaultKpmGradleProjectModelContainer.create(project)
|
||||
} else error("Model mapping is not enabled.")
|
||||
}
|
||||
|
||||
+3
-3
@@ -101,11 +101,11 @@ internal fun configureStdlibDefaultDependency(project: Project) = with(project)
|
||||
|
||||
val scopesToHandleConfigurations = listOf(KotlinDependencyScope.API_SCOPE, KotlinDependencyScope.IMPLEMENTATION_SCOPE)
|
||||
|
||||
val ext = topLevelExtension
|
||||
val extension = topLevelExtension
|
||||
when {
|
||||
project.hasKpmModel -> addStdlibToKpmProject(project)
|
||||
ext is KotlinProjectExtension -> {
|
||||
ext.sourceSets.all { kotlinSourceSet ->
|
||||
extension is KotlinProjectExtension -> {
|
||||
extension.sourceSets.all { kotlinSourceSet ->
|
||||
scopesToHandleConfigurations.forEach { scope ->
|
||||
val scopeConfiguration = project.sourceSetDependencyConfigurationByScope(kotlinSourceSet, scope)
|
||||
|
||||
|
||||
+1
-2
@@ -82,8 +82,7 @@ abstract class KotlinPm20GradlePlugin @Inject constructor(
|
||||
fun rootPublicationComponentName(module: KotlinGradleModule) =
|
||||
module.disambiguateName("root")
|
||||
|
||||
open class KotlinPm20ProjectExtension(project: Project) :
|
||||
KotlinTopLevelExtension(project) {
|
||||
open class KotlinPm20ProjectExtension(project: Project) : KotlinTopLevelExtension(project) {
|
||||
|
||||
internal val kpmModelContainer = DefaultKpmGradleProjectModelContainer.create(project)
|
||||
|
||||
|
||||
+12
-14
@@ -37,7 +37,7 @@ interface KotlinVariantCompilationDataInternal<T : KotlinCommonOptions> : Kotlin
|
||||
project.filesProvider {
|
||||
val friendVariants = resolveFriendVariants()
|
||||
val friendModuleClassifiers = friendVariants.map { it.containingModule.moduleClassifier }.toSet()
|
||||
val artifactView = owner.compileDependenciesConfiguration
|
||||
owner.compileDependenciesConfiguration
|
||||
.incoming.artifactView { view ->
|
||||
view.componentFilter { id ->
|
||||
// FIXME rewrite using the proper module resolution after those changes are merged
|
||||
@@ -45,11 +45,10 @@ interface KotlinVariantCompilationDataInternal<T : KotlinCommonOptions> : Kotlin
|
||||
asProject?.build?.isCurrentBuild == true &&
|
||||
asProject.projectPath == owner.project.path
|
||||
}
|
||||
}.artifacts
|
||||
artifactView.filter {
|
||||
// FIXME rewrite using the proper module resolution after those changes are merged
|
||||
moduleClassifiersFromCapabilities(it.variant.capabilities).any { it in friendModuleClassifiers }
|
||||
}.map { it.file }
|
||||
}.artifacts.filter {
|
||||
// FIXME rewrite using the proper module resolution after those changes are merged
|
||||
moduleClassifiersFromCapabilities(it.variant.capabilities).any { it in friendModuleClassifiers }
|
||||
}.map { it.file }
|
||||
}
|
||||
)
|
||||
}
|
||||
@@ -72,17 +71,16 @@ interface KotlinVariantCompilationDataInternal<T : KotlinCommonOptions> : Kotlin
|
||||
?: error("Failed to resolve dependencies of ${owner.containingModule}"))
|
||||
.allDependencyModules
|
||||
.filterIsInstance<KotlinGradleModule>()
|
||||
.filter {
|
||||
.filter { dependencyModule ->
|
||||
// the module comes from the same Gradle project // todo: extend to other friends once supported
|
||||
it.project == owner.containingModule.project &&
|
||||
// also, important to check that the owner variant really requests this module:
|
||||
variantResolver.getChosenVariant(owner, it) is VariantResolution.VariantMatch
|
||||
dependencyModule.project == owner.containingModule.project
|
||||
}
|
||||
|
||||
val friendVariants = friendModules.map {
|
||||
(variantResolver.getChosenVariant(owner, it) as VariantResolution.VariantMatch).chosenVariant
|
||||
}
|
||||
return friendVariants.filterIsInstance<KotlinGradleVariant>()
|
||||
return friendModules
|
||||
.map { friendModule -> variantResolver.getChosenVariant(owner, friendModule) }
|
||||
// also, important to check that the owner variant really requests this module:
|
||||
.filterIsInstance<VariantResolution.VariantMatch>()
|
||||
.mapNotNull { variantMatch -> variantMatch.chosenVariant as? KotlinGradleVariant }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -90,8 +90,8 @@ open class KotlinGradleFragmentInternal @Inject constructor(
|
||||
// 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<KotlinModuleDependency>
|
||||
get() = listOf(apiConfiguration, implementationConfiguration).flatMapTo(mutableSetOf()) {
|
||||
it.allDependencies.map { it.toModuleDependency(project) }
|
||||
get() = listOf(apiConfiguration, implementationConfiguration).flatMapTo(mutableSetOf()) { exportConfiguration ->
|
||||
exportConfiguration.allDependencies.map { dependency -> dependency.toModuleDependency(project) }
|
||||
}
|
||||
|
||||
override val kotlinSourceRoots: SourceDirectorySet =
|
||||
|
||||
+1
-1
@@ -51,7 +51,7 @@ internal fun KotlinGradleVariant.ownModuleName(): String {
|
||||
return filterModuleName("$baseName$suffix")
|
||||
}
|
||||
|
||||
class KotlinMappedJvmCompilationFactory(
|
||||
internal class KotlinMappedJvmCompilationFactory(
|
||||
target: KotlinJvmTarget
|
||||
) : KotlinJvmCompilationFactory(target) {
|
||||
override fun create(name: String): KotlinJvmCompilation {
|
||||
|
||||
+1
-1
@@ -28,7 +28,7 @@ internal open class KpmAwareTargetConfigurator<T : KotlinTarget>(
|
||||
private fun setupMavenPublicationDsl(target: T) {
|
||||
if (target is AbstractKotlinTarget) {
|
||||
target.compilations.all { compilation ->
|
||||
val compilationDetails = (compilation as? AbstractKotlinCompilation)?.compilationDetails as? VariantMappedCompilationDetails
|
||||
val compilationDetails = (compilation as? AbstractKotlinCompilation)?.compilationDetails
|
||||
if (compilationDetails is VariantMappedCompilationDetails<*> && compilationDetails.variant.containingModule.isMain) {
|
||||
val variant = compilationDetails.variant
|
||||
if (variant is SingleMavenPublishedModuleHolder) {
|
||||
|
||||
+8
-5
@@ -40,15 +40,19 @@ internal open class LegacyMappedVariant(
|
||||
|
||||
override val platformType: KotlinPlatformType
|
||||
get() = compilation.platformType
|
||||
|
||||
override val compileDependenciesConfiguration: Configuration
|
||||
get() = project.configurations.getByName(compilation.compileDependencyConfigurationName)
|
||||
|
||||
override var compileDependencyFiles: FileCollection
|
||||
get() = compilation.compileDependencyFiles
|
||||
set(value) {
|
||||
compilation.compileDependencyFiles = value
|
||||
}
|
||||
|
||||
override val compilationOutputs: KotlinCompilationOutput
|
||||
get() = compilation.output
|
||||
|
||||
override val sourceArchiveTaskName: String
|
||||
get() = defaultSourceArtifactTaskName // TODO: no such task yet
|
||||
|
||||
@@ -180,12 +184,11 @@ internal fun mapTargetCompilationsToKpmVariants(target: AbstractKotlinTarget, pu
|
||||
module.fragments.add(variant)
|
||||
}
|
||||
|
||||
val whenPublicationShouldRegister: (() -> Unit) -> Unit = when (publicationRegistration) {
|
||||
PublicationRegistrationMode.IMMEDIATE -> ::run
|
||||
PublicationRegistrationMode.AFTER_EVALUATE -> {
|
||||
{ target.project.whenEvaluated { it() } }
|
||||
fun whenPublicationShouldRegister(action: () -> Unit) =
|
||||
when (publicationRegistration) {
|
||||
PublicationRegistrationMode.IMMEDIATE -> action()
|
||||
PublicationRegistrationMode.AFTER_EVALUATE -> target.project.whenEvaluated { action() }
|
||||
}
|
||||
}
|
||||
|
||||
whenPublicationShouldRegister {
|
||||
val mainModule = target.project.kpmModules.getByName(KotlinGradleModule.MAIN_MODULE_NAME)
|
||||
|
||||
+6
-7
@@ -24,6 +24,7 @@ import org.jetbrains.kotlin.gradle.tasks.registerTask
|
||||
import org.jetbrains.kotlin.gradle.tasks.withType
|
||||
import org.jetbrains.kotlin.gradle.utils.addExtendsFromRelation
|
||||
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
|
||||
@@ -152,14 +153,12 @@ private fun configureMetadataJarTask(
|
||||
}
|
||||
module.fragments.all { fragment ->
|
||||
allMetadataJar.configure { jar ->
|
||||
val metadataOutput = project.files(Callable {
|
||||
val metadataOutput = project.filesProvider {
|
||||
val compilationData = registry.getForFragmentOrNull(fragment)
|
||||
compilationData?.run {
|
||||
if (!fragment.isNativeHostSpecific())
|
||||
project.filesWithUnpackedArchives(compilationData.output.allOutputs, setOf(KLIB_FILE_EXTENSION))
|
||||
else emptyList<Any>()
|
||||
} ?: emptyList<Any>()
|
||||
})
|
||||
.takeIf { !fragment.isNativeHostSpecific() }
|
||||
?: return@filesProvider emptyList<Any>()
|
||||
project.filesWithUnpackedArchives(compilationData.output.allOutputs, setOf(KLIB_FILE_EXTENSION))
|
||||
}
|
||||
jar.from(metadataOutput) { spec ->
|
||||
spec.into(fragment.fragmentName)
|
||||
}
|
||||
|
||||
+7
-10
@@ -27,16 +27,13 @@ internal class KpmMetadataTargetConfigurator(private val metadataTargetConfigura
|
||||
override fun configureCompilationDefaults(target: KotlinMetadataTarget) {
|
||||
super.configureCompilationDefaults(target)
|
||||
|
||||
// we still want to configure the legacy "main" compilation
|
||||
run {
|
||||
val mainCompilation = target.compilations.create(KotlinCompilation.MAIN_COMPILATION_NAME)
|
||||
defineConfigurationsForCompilation(mainCompilation)
|
||||
createLifecycleTask(mainCompilation)
|
||||
metadataTargetConfigurator
|
||||
.buildCompilationProcessor(mainCompilation)
|
||||
.run()
|
||||
mainCompilation.compileKotlinTaskProvider.configure { it.enabled = false }
|
||||
}
|
||||
val mainCompilation = target.compilations.create(KotlinCompilation.MAIN_COMPILATION_NAME)
|
||||
defineConfigurationsForCompilation(mainCompilation)
|
||||
createLifecycleTask(mainCompilation)
|
||||
metadataTargetConfigurator
|
||||
.buildCompilationProcessor(mainCompilation)
|
||||
.run()
|
||||
mainCompilation.compileKotlinTaskProvider.configure { it.enabled = false }
|
||||
}
|
||||
|
||||
private fun configureTargetWithKpm(target: KotlinMetadataTarget) {
|
||||
|
||||
+1
-1
@@ -24,7 +24,7 @@ internal fun dashSeparatedName(vararg nameParts: String?): String {
|
||||
}
|
||||
|
||||
internal fun dashSeparatedLowercaseName(nameParts: Iterable<String?>) =
|
||||
dashSeparatedName(*nameParts.toList().toTypedArray())
|
||||
dashSeparatedLowercaseName(*nameParts.toList().toTypedArray())
|
||||
|
||||
internal fun dashSeparatedLowercaseName(vararg nameParts: String?): String {
|
||||
val nonEmptyParts = nameParts.mapNotNull { it?.takeIf(String::isNotEmpty)?.toLowerCase(Locale.ENGLISH) }
|
||||
|
||||
Reference in New Issue
Block a user