diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt index 01debfa9116..e11cc460645 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt @@ -183,6 +183,7 @@ class NewMultiplatformIT : BaseGradleIT() { build("checkBinaryGetters") { assertTrue(output.contains("Wasm binary file: main.wasm")) assertTrue(output.contains("Wasm link task: linkMainReleaseExecutableWasm32")) + assertTrue(output.contains("Wasm link task name: linkMainReleaseExecutableWasm32")) val testFiles = listOf( "MacOS" to "test.kexe", diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-lib-and-app/sample-app-gradle-kotlin-dsl/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-lib-and-app/sample-app-gradle-kotlin-dsl/build.gradle.kts index d72df9948e9..c97f793a3ea 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-lib-and-app/sample-app-gradle-kotlin-dsl/build.gradle.kts +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-lib-and-app/sample-app-gradle-kotlin-dsl/build.gradle.kts @@ -64,6 +64,7 @@ kotlin { doLast { println("Wasm binary file: ${wasm32.compilations.getByName("main").getBinary("EXECUTABLE", "RELEASE").name}") println("Wasm link task: ${wasm32.compilations.getByName("main").getLinkTask("EXECUTABLE", "RELEASE").name}") + println("Wasm link task name: ${wasm32.compilations.getByName("main").linkTaskName("EXECUTABLE", "RELEASE")}") println("Windows test file: ${mingw64.compilations.getByName("test").getBinary("EXECUTABLE", "DEBUG").name}") println("Windows test link task: ${mingw64.compilations.getByName("test").getLinkTask("EXECUTABLE", "DEBUG").name}") diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-lib-and-app/sample-app/build.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-lib-and-app/sample-app/build.gradle index 365500133ff..06b3a816e71 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-lib-and-app/sample-app/build.gradle +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-lib-and-app/sample-app/build.gradle @@ -84,6 +84,7 @@ task checkBinaryGetters { doLast { println("Wasm binary file: ${kotlin.targets.wasm32.compilations.main.getBinary("EXECUTABLE", "RELEASE").name}") println("Wasm link task: ${kotlin.targets.wasm32.compilations.main.getLinkTask("EXECUTABLE", "RELEASE").name}") + println("Wasm link task name: ${kotlin.targets.wasm32.compilations.main.linkTaskName("EXECUTABLE", "RELEASE")}") println("Windows test file: ${kotlin.targets.mingw64.compilations.test.getBinary("EXECUTABLE", "DEBUG").name}") println("Windows test link task: ${kotlin.targets.mingw64.compilations.test.getLinkTask("EXECUTABLE", "DEBUG").name}") diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinNativeBinaryContainer.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinNativeBinaryContainer.kt index d4eccf6e1ca..24832cda6f4 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinNativeBinaryContainer.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinNativeBinaryContainer.kt @@ -36,16 +36,13 @@ open class KotlinNativeBinaryContainer @Inject constructor( internal val prefixGroups: NamedDomainObjectSet = WrapUtil.toNamedDomainObjectSet(PrefixGroup::class.java) // region DSL getters. - private fun generateName(prefix: String, buildType: NativeBuildType, outputKindClassifier: String) = - lowerCamelCaseName(prefix, buildType.getName(), outputKindClassifier) - private inline fun getBinary( namePrefix: String, buildType: NativeBuildType, outputKind: NativeOutputKind ): T { val classifier = outputKind.taskNameClassifier - val name = generateName(namePrefix, buildType, classifier) + val name = generateBinaryName(namePrefix, buildType, classifier) val binary = getByName(name) require(binary is T && binary.buildType == buildType) { "Binary $name has incorrect outputKind or build type.\n" + @@ -60,7 +57,7 @@ open class KotlinNativeBinaryContainer @Inject constructor( outputKind: NativeOutputKind ): T? { val classifier = outputKind.taskNameClassifier - val name = generateName(namePrefix, buildType, classifier) + val name = generateBinaryName(namePrefix, buildType, classifier) val binary = findByName(name) return if (binary is T && binary.buildType == buildType) { binary @@ -112,7 +109,7 @@ open class KotlinNativeBinaryContainer @Inject constructor( } buildTypes.forEach { buildType -> - val name = generateName(namePrefix, buildType, outputKind.taskNameClassifier) + val name = generateBinaryName(namePrefix, buildType, outputKind.taskNameClassifier) require(name !in nameToBinary) { "Cannot create binary $name: binary with such a name already exists" @@ -149,6 +146,9 @@ open class KotlinNativeBinaryContainer @Inject constructor( companion object { internal val DEFAULT_TEST_BUILD_TYPE = NativeBuildType.DEBUG + + internal fun generateBinaryName(prefix: String, buildType: NativeBuildType, outputKindClassifier: String) = + lowerCamelCaseName(prefix, buildType.getName(), outputKindClassifier) } // endregion. diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/kotlinCompilations.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/kotlinCompilations.kt index 7ffaae9861c..5701624c9bb 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/kotlinCompilations.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/kotlinCompilations.kt @@ -412,10 +412,8 @@ class KotlinNativeCompilation( fun linkTaskName(kind: NativeOutputKind, buildType: NativeBuildType): String = lowerCamelCaseName( "link", - compilationName.takeIf { it != KotlinCompilation.MAIN_COMPILATION_NAME }.orEmpty(), - buildType.name.toLowerCase(), - kind.taskNameClassifier, - target.disambiguationClassifier + KotlinNativeBinaryContainer.generateBinaryName(compilationName, buildType, kind.taskNameClassifier), + target.targetName ) fun linkTaskName(kind: String, buildType: String) =