From f5a400a0ebebfa077fed39c3e45ff824994b1e1d Mon Sep 17 00:00:00 2001 From: Sergey Igushkin Date: Tue, 1 Feb 2022 00:44:09 +0400 Subject: [PATCH] KPM: Fix JAR naming: put the platform name into appendix, not classifier --- .../KotlinFragmentCompilationOutputsJarArtifact.kt | 4 ++-- .../org/jetbrains/kotlin/gradle/utils/stringUtils.kt | 10 ++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinFragmentCompilationOutputsJarArtifact.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinFragmentCompilationOutputsJarArtifact.kt index afedff49584..340174f5567 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinFragmentCompilationOutputsJarArtifact.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/pm20/KotlinFragmentCompilationOutputsJarArtifact.kt @@ -9,7 +9,7 @@ import org.gradle.api.artifacts.Dependency import org.gradle.jvm.tasks.Jar import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.disambiguateName import org.jetbrains.kotlin.gradle.tasks.locateOrRegisterTask -import org.jetbrains.kotlin.gradle.utils.dashSeparatedName +import org.jetbrains.kotlin.gradle.utils.dashSeparatedLowercaseName /** * Registers a [Jar] task with the variant's compilation outputs and attaches this artifact to the given configuration. @@ -17,7 +17,7 @@ import org.jetbrains.kotlin.gradle.utils.dashSeparatedName val KotlinFragmentCompilationOutputsJarArtifact = FragmentArtifacts { val jar = project.locateOrRegisterTask(fragment.outputsJarTaskName) { it.from(fragment.compilationOutputs.allOutputs) - it.archiveClassifier.set(dashSeparatedName(fragment.name, fragment.containingModule.moduleClassifier)) + it.archiveAppendix.set(dashSeparatedLowercaseName(fragment.name, fragment.containingModule.moduleClassifier)) } artifact(jar) fragment.project.artifacts.add(Dependency.ARCHIVES_CONFIGURATION, jar) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/utils/stringUtils.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/utils/stringUtils.kt index f40afe7dbf1..d8ccb6d7b7e 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/utils/stringUtils.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/utils/stringUtils.kt @@ -5,6 +5,8 @@ package org.jetbrains.kotlin.gradle.utils +import java.util.* + internal fun lowerCamelCaseName(vararg nameParts: String?): String { val nonEmptyParts = nameParts.mapNotNull { it?.takeIf(String::isNotEmpty) } return nonEmptyParts.drop(1).joinToString( @@ -21,6 +23,14 @@ internal fun dashSeparatedName(vararg nameParts: String?): String { return nonEmptyParts.joinToString(separator = "-") } +internal fun dashSeparatedLowercaseName(nameParts: Iterable) = + dashSeparatedName(*nameParts.toList().toTypedArray()) + +internal fun dashSeparatedLowercaseName(vararg nameParts: String?): String { + val nonEmptyParts = nameParts.mapNotNull { it?.takeIf(String::isNotEmpty)?.toLowerCase(Locale.ENGLISH) } + return nonEmptyParts.joinToString(separator = "-") +} + internal fun String.decamelize(): String { return replace(upperCaseRegex) { val (first) = it.destructured