[Gradle] Add missing kotlin-multiplatform tasks descriptions
#KT-31573 Fixed
This commit is contained in:
+10
-6
@@ -9,6 +9,7 @@ import org.gradle.api.Plugin
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.api.attributes.AttributeContainer
|
||||
import org.gradle.api.file.DuplicatesStrategy
|
||||
import org.gradle.api.plugins.BasePlugin
|
||||
import org.gradle.api.plugins.JavaBasePlugin
|
||||
import org.gradle.api.tasks.TaskProvider
|
||||
import org.gradle.jvm.tasks.Jar
|
||||
@@ -27,7 +28,6 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.setupFragmentsMetadataForKpmM
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.setupKpmModulesPublication
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.copyAttributes
|
||||
import org.jetbrains.kotlin.gradle.plugin.sources.DefaultLanguageSettingsBuilder
|
||||
import org.jetbrains.kotlin.gradle.plugin.sources.SourceSetMetadataStorageForIde
|
||||
import org.jetbrains.kotlin.gradle.plugin.sources.checkSourceSetVisibilityRequirements
|
||||
import org.jetbrains.kotlin.gradle.plugin.sources.internal
|
||||
import org.jetbrains.kotlin.gradle.plugin.statistics.KotlinBuildStatsService
|
||||
@@ -302,21 +302,23 @@ private fun applyUserDefinedAttributesWithLegacyModel(
|
||||
}
|
||||
}
|
||||
|
||||
internal fun sourcesJarTask(compilation: KotlinCompilation<*>, componentName: String?, artifactNameAppendix: String): TaskProvider<Jar> =
|
||||
internal fun sourcesJarTask(compilation: KotlinCompilation<*>, componentName: String, artifactNameAppendix: String): TaskProvider<Jar> =
|
||||
sourcesJarTask(compilation.target.project, lazy { compilation.allKotlinSourceSets.associate { it.name to it.kotlin } }, componentName, artifactNameAppendix)
|
||||
|
||||
internal fun sourcesJarTask(
|
||||
private fun sourcesJarTask(
|
||||
project: Project,
|
||||
sourceSets: Lazy<Map<String, Iterable<File>>>,
|
||||
componentName: String?,
|
||||
taskNamePrefix: String,
|
||||
artifactNameAppendix: String
|
||||
): TaskProvider<Jar> = sourcesJarTaskNamed(lowerCamelCaseName(componentName, "sourcesJar"), project, sourceSets, artifactNameAppendix)
|
||||
): TaskProvider<Jar> = sourcesJarTaskNamed(lowerCamelCaseName(taskNamePrefix, "sourcesJar"), taskNamePrefix, project, sourceSets, artifactNameAppendix)
|
||||
|
||||
internal fun sourcesJarTaskNamed(
|
||||
taskName: String,
|
||||
componentName: String,
|
||||
project: Project,
|
||||
sourceSets: Lazy<Map<String, Iterable<File>>>,
|
||||
artifactNameAppendix: String
|
||||
artifactNameAppendix: String,
|
||||
componentTypeName: String = "target",
|
||||
): TaskProvider<Jar> {
|
||||
project.locateTask<Jar>(taskName)?.let {
|
||||
return it
|
||||
@@ -327,6 +329,8 @@ internal fun sourcesJarTaskNamed(
|
||||
sourcesJar.archiveClassifier.set("sources")
|
||||
sourcesJar.isPreserveFileTimestamps = false
|
||||
sourcesJar.isReproducibleFileOrder = true
|
||||
sourcesJar.group = BasePlugin.BUILD_GROUP
|
||||
sourcesJar.description = "Assembles a jar archive containing the sources of $componentTypeName '$componentName'."
|
||||
}
|
||||
|
||||
project.whenEvaluated {
|
||||
|
||||
+3
-2
@@ -94,10 +94,11 @@ abstract class KotlinSoftwareComponent(
|
||||
}
|
||||
|
||||
val sourcesArtifacts: Set<PublishArtifact> by lazy {
|
||||
val sourcesJarTask = sourcesJarTask(
|
||||
val sourcesJarTask = sourcesJarTaskNamed(
|
||||
"sourcesJar",
|
||||
name,
|
||||
project,
|
||||
lazy { project.kotlinExtension.sourceSets.associate { it.name to it.kotlin } },
|
||||
null,
|
||||
name.toLowerCase()
|
||||
)
|
||||
val sourcesJarArtifact = project.artifacts.add(Dependency.ARCHIVES_CONFIGURATION, sourcesJarTask) { sourcesJarArtifact ->
|
||||
|
||||
+3
-1
@@ -17,12 +17,14 @@ object GradleKpmDefaultKotlinSourceArchiveTaskConfigurator : GradleKpmSourceArch
|
||||
override fun registerSourceArchiveTask(variant: GradleKpmVariant): TaskProvider<*> {
|
||||
return sourcesJarTaskNamed(
|
||||
taskName = variant.sourceArchiveTaskName,
|
||||
componentName = variant.name,
|
||||
project = variant.project,
|
||||
sourceSets = lazy {
|
||||
GradleKpmFragmentSourcesProvider().getSourcesFromRefinesClosureAsMap(variant)
|
||||
.entries.associate { it.key.unambiguousNameInProject to it.value.get() }
|
||||
},
|
||||
artifactNameAppendix = variant.name
|
||||
artifactNameAppendix = variant.name,
|
||||
componentTypeName = "variant",
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
+3
-1
@@ -73,9 +73,11 @@ private fun configureMetadataExposure(module: GradleKpmModule) {
|
||||
val sourcesArtifactAppendix = dashSeparatedName(module.moduleClassifier, "all", "sources")
|
||||
val sourcesArtifact = sourcesJarTaskNamed(
|
||||
module.disambiguateName("allSourcesJar"),
|
||||
module.name,
|
||||
project,
|
||||
lazy { GradleKpmFragmentSourcesProvider().getAllFragmentSourcesAsMap(module).entries.associate { it.key.fragmentName to it.value.get() } },
|
||||
sourcesArtifactAppendix
|
||||
sourcesArtifactAppendix,
|
||||
"module",
|
||||
)
|
||||
DocumentationVariantConfigurator().createSourcesElementsConfiguration(
|
||||
project, sourceElementsConfigurationName(module),
|
||||
|
||||
+5
-1
@@ -341,7 +341,9 @@ class KotlinMetadataTargetConfigurator :
|
||||
project.registerTask<TransformKotlinGranularMetadata>(
|
||||
transformGranularMetadataTaskName(compilation.name),
|
||||
listOf(sourceSet)
|
||||
) { }
|
||||
) {
|
||||
it.description = "Generates serialized dependencies metadata for compilation '${compilation.name}' of target '${compilation.target.name}' (for tooling)"
|
||||
}
|
||||
|
||||
compilation.compileDependencyFiles += createMetadataDependencyTransformationClasspath(
|
||||
project.configurations.getByName(ALL_COMPILE_METADATA_CONFIGURATION_NAME),
|
||||
@@ -498,11 +500,13 @@ internal class NativeSharedCompilationProcessor(
|
||||
internal fun Project.createGenerateProjectStructureMetadataTask(module: GradleKpmModule): TaskProvider<GenerateProjectStructureMetadata> =
|
||||
project.registerTask(lowerCamelCaseName("generate", module.moduleClassifier, "ProjectStructureMetadata")) { task ->
|
||||
task.lazyKotlinProjectStructureMetadata = lazy { buildProjectStructureMetadata(module) }
|
||||
task.description = "Generates serialized project structure metadata of module '${module.name}' (for tooling)"
|
||||
}
|
||||
|
||||
internal fun Project.createGenerateProjectStructureMetadataTask(): TaskProvider<GenerateProjectStructureMetadata> =
|
||||
project.registerTask(lowerCamelCaseName("generateProjectStructureMetadata")) { task ->
|
||||
task.lazyKotlinProjectStructureMetadata = lazy { project.multiplatformExtension.kotlinProjectStructureMetadata }
|
||||
task.description = "Generates serialized project structure metadata of the current project (for tooling)"
|
||||
}
|
||||
|
||||
internal interface ResolvedMetadataFilesProvider {
|
||||
|
||||
+3
@@ -10,6 +10,7 @@ import org.gradle.api.NamedDomainObjectContainer
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.api.artifacts.Dependency
|
||||
import org.gradle.api.attributes.Attribute
|
||||
import org.gradle.api.plugins.BasePlugin
|
||||
import org.gradle.jvm.tasks.Jar
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinNativeBinaryContainer
|
||||
import org.jetbrains.kotlin.gradle.dsl.kotlinExtension
|
||||
@@ -65,6 +66,8 @@ abstract class KotlinNativeTarget @Inject constructor(
|
||||
val hostSpecificMetadataJar = project.locateOrRegisterTask<Jar>(hostSpecificMetadataJarTaskName) { metadataJar ->
|
||||
metadataJar.archiveAppendix.set(project.provider { disambiguationClassifier.orEmpty().toLowerCase() })
|
||||
metadataJar.archiveClassifier.set("metadata")
|
||||
metadataJar.group = BasePlugin.BUILD_GROUP
|
||||
metadataJar.description = "Assembles Kotlin metadata of target '${name}'."
|
||||
|
||||
val publishable = this@KotlinNativeTarget.publishable
|
||||
metadataJar.onlyIf { publishable }
|
||||
|
||||
+21
-15
@@ -66,8 +66,8 @@ open class KotlinNativeTargetConfigurator<T : KotlinNativeTarget> : AbstractKotl
|
||||
|
||||
|
||||
if (binary !is TestExecutable) {
|
||||
tasks.named(binary.compilation.target.artifactsTaskName).configure { it.dependsOn(result) }
|
||||
locateOrRegisterTask<Task>(LifecycleBasePlugin.ASSEMBLE_TASK_NAME).configure { it.dependsOn(result) }
|
||||
tasks.named(binary.compilation.target.artifactsTaskName).dependsOn(result)
|
||||
locateOrRegisterTask<Task>(LifecycleBasePlugin.ASSEMBLE_TASK_NAME).dependsOn(result)
|
||||
}
|
||||
|
||||
if (binary is Framework) {
|
||||
@@ -254,7 +254,10 @@ open class KotlinNativeTargetConfigurator<T : KotlinNativeTarget> : AbstractKotl
|
||||
}
|
||||
|
||||
override fun configureArchivesAndComponent(target: T): Unit = with(target.project) {
|
||||
registerTask<DefaultTask>(target.artifactsTaskName) { }
|
||||
registerTask<DefaultTask>(target.artifactsTaskName) {
|
||||
it.group = BasePlugin.BUILD_GROUP
|
||||
it.description = "Assembles outputs for target '${target.name}'."
|
||||
}
|
||||
target.compilations.all { createKlibCompilationTask(it) }
|
||||
|
||||
val apiElements = configurations.getByName(target.apiElementsConfigurationName)
|
||||
@@ -299,7 +302,10 @@ open class KotlinNativeTargetConfigurator<T : KotlinNativeTarget> : AbstractKotl
|
||||
}
|
||||
|
||||
target.binaries.prefixGroups.all { prefixGroup ->
|
||||
val linkGroupTask = project.tasks.maybeCreate(prefixGroup.linkTaskName)
|
||||
val linkGroupTask = project.locateOrRegisterTask<Task>(prefixGroup.linkTaskName) {
|
||||
it.group = BasePlugin.BUILD_GROUP
|
||||
it.description = "Links all binaries for target '${target.name}'."
|
||||
}
|
||||
prefixGroup.binaries.all {
|
||||
linkGroupTask.dependsOn(it.linkTaskName)
|
||||
}
|
||||
@@ -307,7 +313,10 @@ open class KotlinNativeTargetConfigurator<T : KotlinNativeTarget> : AbstractKotl
|
||||
|
||||
// Create an aggregate link task for each compilation.
|
||||
target.compilations.all {
|
||||
project.registerTask<DefaultTask>(it.binariesTaskName)
|
||||
project.registerTask<DefaultTask>(it.binariesTaskName) { task ->
|
||||
task.group = BasePlugin.BUILD_GROUP
|
||||
task.description = "Links all binaries for compilation '${it.name}' of target '${it.target.name}'."
|
||||
}
|
||||
}
|
||||
|
||||
project.whenEvaluated {
|
||||
@@ -435,20 +444,14 @@ open class KotlinNativeTargetConfigurator<T : KotlinNativeTarget> : AbstractKotl
|
||||
|
||||
compilation.output.classesDirs.from(compileTaskProvider.map { it.outputFile })
|
||||
|
||||
project.project.tasks.named(compilation.compileAllTaskName).configure {
|
||||
it.dependsOn(compileTaskProvider)
|
||||
}
|
||||
project.project.tasks.named(compilation.compileAllTaskName).dependsOn(compileTaskProvider)
|
||||
|
||||
if (compilation.isMainCompilationData()) {
|
||||
if (compilation is KotlinNativeCompilation) {
|
||||
project.project.tasks.named(compilation.target.artifactsTaskName).configure {
|
||||
it.dependsOn(compileTaskProvider)
|
||||
}
|
||||
project.project.tasks.named(compilation.target.artifactsTaskName).dependsOn(compileTaskProvider)
|
||||
}
|
||||
|
||||
project.project.tasks.named(LifecycleBasePlugin.ASSEMBLE_TASK_NAME).configure {
|
||||
it.dependsOn(compileTaskProvider)
|
||||
}
|
||||
project.project.tasks.named(LifecycleBasePlugin.ASSEMBLE_TASK_NAME).dependsOn(compileTaskProvider)
|
||||
}
|
||||
val shouldAddCompileOutputsToElements = compilation.owner is GradleKpmVariant || compilation.isMainCompilationData()
|
||||
if (shouldAddCompileOutputsToElements) {
|
||||
@@ -552,7 +555,10 @@ internal class GradleKpmNativeTargetConfigurator<T : KotlinNativeTarget>(private
|
||||
}
|
||||
|
||||
private fun configureBinariesTask(target: T) {
|
||||
target.project.registerTask<DefaultTask>(target.artifactsTaskName) { }
|
||||
target.project.registerTask<DefaultTask>(target.artifactsTaskName) {
|
||||
it.group = BasePlugin.BUILD_GROUP
|
||||
it.description = "Assembles outputs for target '${target.name}'."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
@@ -58,6 +58,8 @@ internal fun TaskProvider<*>.dependsOn(other: TaskProvider<*>) = configure { it.
|
||||
|
||||
internal fun TaskProvider<*>.dependsOn(other: Task) = configure { it.dependsOn(other) }
|
||||
|
||||
internal fun TaskProvider<*>.dependsOn(otherPath: String) = configure { it.dependsOn(otherPath) }
|
||||
|
||||
internal inline fun <reified S : Task> TaskCollection<in S>.withType(): TaskCollection<S> = withType(S::class.java)
|
||||
|
||||
/**
|
||||
|
||||
+8
-5
@@ -7,15 +7,16 @@ package org.jetbrains.kotlin.gradle.testing.internal
|
||||
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.api.Task
|
||||
import org.gradle.api.plugins.BasePlugin
|
||||
import org.gradle.api.plugins.JavaBasePlugin
|
||||
import org.gradle.api.tasks.TaskProvider
|
||||
import org.gradle.api.tasks.testing.AbstractTestTask
|
||||
import org.gradle.language.base.plugins.LifecycleBasePlugin
|
||||
import org.jetbrains.kotlin.gradle.tasks.dependsOn
|
||||
import org.jetbrains.kotlin.gradle.tasks.locateOrRegisterTask
|
||||
import org.jetbrains.kotlin.gradle.tasks.registerTask
|
||||
import org.jetbrains.kotlin.gradle.tasks.locateTask
|
||||
import org.jetbrains.kotlin.gradle.utils.getSystemProperty
|
||||
import org.jetbrains.kotlin.gradle.utils.isConfigurationCacheAvailable
|
||||
|
||||
/**
|
||||
* Internal service for creating aggregated test tasks and registering all test tasks.
|
||||
@@ -102,10 +103,12 @@ class KotlinTestsRegistry(val project: Project, val allTestsTaskName: String = "
|
||||
private val Project.cleanAllTestTask: TaskProvider<*>
|
||||
get() {
|
||||
val taskName = cleanTaskName(allTestsTask.name)
|
||||
return project.locateTask<Task>(taskName)
|
||||
?: project.registerTask<Task>(taskName).also { cleanAllTest ->
|
||||
tasks.named(LifecycleBasePlugin.CLEAN_TASK_NAME).dependsOn(cleanAllTest)
|
||||
}
|
||||
return project.locateOrRegisterTask<Task>(taskName) { cleanAllTest ->
|
||||
cleanAllTest.group = BasePlugin.BUILD_GROUP
|
||||
cleanAllTest.description = "Deletes all the test results."
|
||||
}.also { cleanAllTest ->
|
||||
tasks.named(LifecycleBasePlugin.CLEAN_TASK_NAME).dependsOn(cleanAllTest)
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
|
||||
Reference in New Issue
Block a user