KT-MR-5666 Use SetProperty for artifacts in place of ListProperty

This commit is contained in:
Sergey Igushkin
2022-02-08 16:25:08 +04:00
committed by Space
parent b926f3ea2f
commit faf2f3e48d
5 changed files with 17 additions and 8 deletions
@@ -16,7 +16,7 @@ import org.gradle.api.component.ComponentWithVariants
import org.gradle.api.component.SoftwareComponent
import org.gradle.api.internal.component.SoftwareComponentInternal
import org.gradle.api.internal.component.UsageContext
import org.gradle.api.provider.ListProperty
import org.gradle.api.provider.SetProperty
import org.gradle.api.publish.maven.MavenPublication
import org.jetbrains.kotlin.gradle.dsl.kotlinExtension
import org.jetbrains.kotlin.gradle.dsl.multiplatformExtension
@@ -29,6 +29,7 @@ import org.jetbrains.kotlin.gradle.targets.metadata.KotlinMetadataTargetConfigur
import org.jetbrains.kotlin.gradle.targets.metadata.isCompatibilityMetadataVariantEnabled
import org.jetbrains.kotlin.gradle.targets.metadata.isKotlinGranularMetadataEnabled
import org.jetbrains.kotlin.gradle.utils.listProperty
import org.jetbrains.kotlin.gradle.utils.setProperty
abstract class KotlinSoftwareComponent(
private val project: Project,
@@ -69,7 +70,7 @@ abstract class KotlinSoftwareComponent(
compilation = metadataTarget.compilations.getByName(MAIN_COMPILATION_NAME),
usage = javaApiUsage,
dependencyConfigurationName = metadataTarget.apiElementsConfigurationName,
overrideConfigurationArtifacts = project.listProperty { listOf(allMetadataArtifact) }
overrideConfigurationArtifacts = project.setProperty { listOf(allMetadataArtifact) }
)
@@ -128,7 +129,7 @@ class DefaultKotlinUsageContext(
override val compilation: KotlinCompilation<*>,
private val usage: Usage,
override val dependencyConfigurationName: String,
internal val overrideConfigurationArtifacts: ListProperty<PublishArtifact>? = null,
internal val overrideConfigurationArtifacts: SetProperty<PublishArtifact>? = null,
internal val overrideConfigurationAttributes: AttributeContainer? = null,
override val includeIntoProjectStructureMetadata: Boolean = true
) : KotlinUsageContext {
@@ -17,6 +17,7 @@ import org.jetbrains.kotlin.gradle.plugin.*
import org.jetbrains.kotlin.gradle.utils.dashSeparatedName
import org.jetbrains.kotlin.gradle.utils.listProperty
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
import org.jetbrains.kotlin.gradle.utils.setProperty
open class KotlinAndroidTarget(
override val targetName: String,
@@ -206,7 +207,7 @@ open class KotlinAndroidTarget(
compilation,
project.usageByName(usageName),
dependencyConfigurationName,
overrideConfigurationArtifacts = project.listProperty { listOf(artifact) },
overrideConfigurationArtifacts = project.setProperty { listOf(artifact) },
overrideConfigurationAttributes = HierarchyAttributeContainer(configuration.attributes) {
val valueString = run {
val value = configuration.attributes.getAttribute(it)
@@ -31,6 +31,7 @@ import org.jetbrains.kotlin.gradle.testing.testTaskName
import org.jetbrains.kotlin.gradle.utils.dashSeparatedName
import org.jetbrains.kotlin.gradle.utils.listProperty
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
import org.jetbrains.kotlin.gradle.utils.setProperty
import javax.inject.Inject
open class KotlinJsTarget
@@ -102,7 +103,7 @@ constructor(
compilation = compilations.getByName(KotlinCompilation.MAIN_COMPILATION_NAME),
usage = project.usageByName("java-api-jars"),
dependencyConfigurationName = commonFakeApiElementsConfigurationName,
overrideConfigurationArtifacts = project.listProperty { emptyList() }
overrideConfigurationArtifacts = project.setProperty { emptyList() }
)
}
@@ -28,6 +28,7 @@ import org.jetbrains.kotlin.gradle.tasks.locateOrRegisterTask
import org.jetbrains.kotlin.gradle.tasks.registerTask
import org.jetbrains.kotlin.gradle.utils.listProperty
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
import org.jetbrains.kotlin.gradle.utils.setProperty
import javax.inject.Inject
open class KotlinJsIrTarget
@@ -68,7 +69,7 @@ constructor(
compilation = compilations.getByName(MAIN_COMPILATION_NAME),
usage = project.usageByName("java-api-jars"),
dependencyConfigurationName = commonFakeApiElementsConfigurationName,
overrideConfigurationArtifacts = project.listProperty { emptyList() }
overrideConfigurationArtifacts = project.setProperty { emptyList() }
)
}
@@ -10,8 +10,10 @@ import org.gradle.api.Task
import org.gradle.api.file.ConfigurableFileCollection
import org.gradle.api.file.RegularFileProperty
import org.gradle.api.model.ObjectFactory
import org.gradle.api.provider.ListProperty
import org.gradle.api.provider.Property
import org.gradle.api.provider.Provider
import org.gradle.api.provider.SetProperty
import org.gradle.api.tasks.TaskProvider
import java.io.File
import kotlin.properties.ReadOnlyProperty
@@ -98,5 +100,8 @@ internal fun <T : Task> T.outputFilesProvider(provider: T.() -> Any): Configurab
return project.filesProvider(this) { provider() }
}
internal inline fun <reified T> Project.listProperty(noinline itemsProvider: () -> Iterable<T>) =
objects.listProperty(T::class.java).apply { set(provider(itemsProvider)) }
internal inline fun <reified T> Project.listProperty(noinline itemsProvider: () -> Iterable<T>): ListProperty<T> =
objects.listProperty(T::class.java).apply { set(provider(itemsProvider)) }
internal inline fun <reified T> Project.setProperty(noinline itemsProvider: () -> Iterable<T>): SetProperty<T> =
objects.setProperty(T::class.java).apply { set(provider(itemsProvider)) }