diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinCompilationInfo.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinCompilationInfo.kt index 5d5063c674f..aac06e63ed3 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinCompilationInfo.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinCompilationInfo.kt @@ -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 + abstract val displayName: String class TCS(val compilation: KotlinCompilation<*>) : KotlinCompilationInfo() { @@ -92,6 +94,13 @@ internal sealed class KotlinCompilationInfo { override val sources: List 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 get() = origin.kotlinSourceDirectoriesByFragmentName.values.toList() + override val displayName: String + get() = origin.toString() + + override fun toString(): String { + return displayName + } } } 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 8de7d4c53eb..ef348b74e46 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 @@ -491,7 +491,7 @@ open class KotlinNativeTargetConfigurator : 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")) diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/regressionTests/KT57023CompileTaskDescriptionsTest.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/regressionTests/KT57023CompileTaskDescriptionsTest.kt new file mode 100644 index 00000000000..02b306e9d52 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/regressionTests/KT57023CompileTaskDescriptionsTest.kt @@ -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 + ) + } +} \ No newline at end of file