[Gradle] Fix cryptic task descriptions of Kotlin Compile Tasks

^KT-57023 Verification Pending
This commit is contained in:
Sebastian Sellmair
2023-02-28 16:55:15 +01:00
committed by Space Team
parent de138532c7
commit 57b32b6f69
3 changed files with 70 additions and 1 deletions
@@ -19,6 +19,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.GradleKpmCompilationData
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.GradleKpmModule
import org.jetbrains.kotlin.gradle.plugin.sources.dependsOnClosure
import org.jetbrains.kotlin.gradle.utils.filesProvider
import org.jetbrains.kotlin.gradle.utils.toSetOrEmpty
import org.jetbrains.kotlin.project.model.LanguageSettings
internal sealed class KotlinCompilationInfo {
@@ -38,6 +39,7 @@ internal sealed class KotlinCompilationInfo {
abstract val classesDirs: ConfigurableFileCollection
abstract val compileDependencyFiles: FileCollection
abstract val sources: List<SourceDirectorySet>
abstract val displayName: String
class TCS(val compilation: KotlinCompilation<*>) : KotlinCompilationInfo() {
@@ -92,6 +94,13 @@ internal sealed class KotlinCompilationInfo {
override val sources: List<SourceDirectorySet>
get() = origin.allKotlinSourceSets.map { it.kotlin }
override val displayName: String
get() = "compilation '${compilation.name}' in target '${compilation.target.name}'"
override fun toString(): String {
return displayName
}
}
class KPM(val compilationData: GradleKpmCompilationData<*>) : KotlinCompilationInfo() {
@@ -151,6 +160,12 @@ internal sealed class KotlinCompilationInfo {
override val sources: List<SourceDirectorySet>
get() = origin.kotlinSourceDirectoriesByFragmentName.values.toList()
override val displayName: String
get() = origin.toString()
override fun toString(): String {
return displayName
}
}
}
@@ -491,7 +491,7 @@ open class KotlinNativeTargetConfigurator<T : KotlinNativeTarget> : AbstractKotl
) {
it.group = BasePlugin.BUILD_GROUP
it.description = "Compiles a klibrary from the '${compilationInfo.compilationName}' " +
"compilation for target '${compilationInfo.platformType.name}'."
"compilation in target '${compilationInfo.targetDisambiguationClassifier}'."
it.enabled = konanTarget.enabledOnCurrentHost
it.destinationDirectory.set(project.klibOutputDirectory(compilationInfo).resolve("klib"))
@@ -0,0 +1,54 @@
/*
* Copyright 2010-2023 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.
*/
@file:Suppress("FunctionName")
package org.jetbrains.kotlin.gradle.regressionTests
import org.jetbrains.kotlin.gradle.dsl.multiplatformExtension
import org.jetbrains.kotlin.gradle.plugin.KotlinJsCompilerType
import org.jetbrains.kotlin.gradle.util.buildProjectWithMPP
import kotlin.test.Test
import kotlin.test.assertEquals
class KT57023CompileTaskDescriptionsTest {
@Test
fun `test - description of compile tasks`() {
val project = buildProjectWithMPP()
val kotlin = project.multiplatformExtension
kotlin.linuxX64()
kotlin.linuxArm64()
kotlin.jvm()
kotlin.js(KotlinJsCompilerType.IR)
kotlin.targetHierarchy.default()
project.evaluate()
assertEquals(
"Compiles the kotlin sources in compilation 'commonMain' in target 'metadata' to Metadata.",
kotlin.metadata().compilations.getByName("commonMain").compileTaskProvider.get().description
)
assertEquals(
"Compiles a klibrary from the 'linuxMain' compilation in target 'metadata'.",
kotlin.metadata().compilations.getByName("linuxMain").compileTaskProvider.get().description
)
assertEquals(
"Compiles the compilation 'main' in target 'jvm'.",
kotlin.jvm().compilations.getByName("main").compileTaskProvider.get().description
)
assertEquals(
"Compiles the compilation 'test' in target 'jvm'.",
kotlin.jvm().compilations.getByName("test").compileTaskProvider.get().description
)
assertEquals(
"Compiles a klibrary from the 'main' compilation in target 'linuxX64'.",
kotlin.linuxX64().compilations.getByName("main").compileTaskProvider.get().description
)
}
}