[Gradle] Replace deprecated String::capitalize with capitalizeAsciiOnly
This should prevent issues when ascii characters are uppercased or lowercased on users machines with their locales. For example in Turkish locale: * 'i' uppercases to 'İ' * 'I' lowercases to 'ı' ^KT-38712 Verification Pending
This commit is contained in:
committed by
Space Team
parent
7ef858b2fe
commit
1d041b7ef4
+3
-1
@@ -5,6 +5,8 @@
|
||||
|
||||
package org.jetbrains.kotlin.gradle.plugin
|
||||
|
||||
import java.util.*
|
||||
|
||||
enum class KotlinJsCompilerType {
|
||||
LEGACY,
|
||||
IR,
|
||||
@@ -33,5 +35,5 @@ fun String.removeJsCompilerSuffix(compilerType: KotlinJsCompilerType): String {
|
||||
return truncatedString
|
||||
}
|
||||
|
||||
return removeSuffix(compilerType.lowerName.capitalize())
|
||||
return removeSuffix(compilerType.lowerName.capitalize(Locale.ENGLISH))
|
||||
}
|
||||
+2
-1
@@ -13,6 +13,7 @@ import org.gradle.api.plugins.ExtensionAware
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.*
|
||||
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
||||
import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly
|
||||
import javax.inject.Inject
|
||||
|
||||
/*
|
||||
@@ -164,7 +165,7 @@ abstract class KotlinNativeBinaryContainer @Inject constructor(
|
||||
return if (name == suffix)
|
||||
""
|
||||
else
|
||||
name.substringBeforeLast(suffix.capitalize())
|
||||
name.substringBeforeLast(suffix.capitalizeAsciiOnly())
|
||||
}
|
||||
|
||||
// TODO: Remove in 1.3.50.
|
||||
|
||||
+3
-2
@@ -31,6 +31,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJvmAndroidCompilation
|
||||
import org.jetbrains.kotlin.gradle.tasks.*
|
||||
import org.jetbrains.kotlin.gradle.tasks.configuration.*
|
||||
import org.jetbrains.kotlin.gradle.utils.SingleWarningPerBuild
|
||||
import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly
|
||||
import java.io.ByteArrayOutputStream
|
||||
import java.io.File
|
||||
import java.io.ObjectOutputStream
|
||||
@@ -75,7 +76,7 @@ class Kapt3GradleSubplugin @Inject internal constructor(private val registry: To
|
||||
|
||||
fun getKaptConfigurationName(sourceSetName: String): String {
|
||||
return if (sourceSetName != SourceSet.MAIN_SOURCE_SET_NAME)
|
||||
"$MAIN_KAPT_CONFIGURATION_NAME${sourceSetName.capitalize()}"
|
||||
"$MAIN_KAPT_CONFIGURATION_NAME${sourceSetName.capitalizeAsciiOnly()}"
|
||||
else
|
||||
MAIN_KAPT_CONFIGURATION_NAME
|
||||
}
|
||||
@@ -599,7 +600,7 @@ internal fun registerGeneratedJavaSource(kaptTask: TaskProvider<out KaptTask>, j
|
||||
internal fun Configuration.getNamedDependencies(): List<Dependency> = allDependencies.filter { it.group != null }
|
||||
|
||||
private val ANNOTATION_PROCESSOR = "annotationProcessor"
|
||||
private val ANNOTATION_PROCESSOR_CAP = ANNOTATION_PROCESSOR.capitalize()
|
||||
private val ANNOTATION_PROCESSOR_CAP = ANNOTATION_PROCESSOR.capitalizeAsciiOnly()
|
||||
|
||||
internal fun checkAndroidAnnotationProcessorDependencyUsage(project: Project) {
|
||||
if (project.hasProperty("kapt.dont.warn.annotationProcessor.dependencies")) {
|
||||
|
||||
+2
-1
@@ -30,6 +30,7 @@ import org.jetbrains.kotlin.gradle.scripting.ScriptingExtension
|
||||
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
||||
import org.jetbrains.kotlin.scripting.compiler.plugin.impl.reporter
|
||||
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinitionsFromClasspathDiscoverySource
|
||||
import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly
|
||||
import kotlin.script.experimental.jvm.defaultJvmScriptingHostConfiguration
|
||||
|
||||
private const val SCRIPTING_LOG_PREFIX = "kotlin scripting plugin:"
|
||||
@@ -94,7 +95,7 @@ private const val RESULTS_CONFIGURATION_SUFFIX = "Extensions"
|
||||
|
||||
private fun getDiscoveryClasspathConfigurationName(sourceSetName: String): String = when (sourceSetName) {
|
||||
"main" -> MAIN_CONFIGURATION_NAME
|
||||
else -> "$sourceSetName${MAIN_CONFIGURATION_NAME.capitalize()}"
|
||||
else -> "$sourceSetName${MAIN_CONFIGURATION_NAME.capitalizeAsciiOnly()}"
|
||||
}
|
||||
|
||||
private fun getDiscoveryResultsConfigurationName(sourceSetName: String): String =
|
||||
|
||||
+2
-1
@@ -17,6 +17,7 @@ import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTargetPreset
|
||||
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
||||
import org.jetbrains.kotlin.gradle.utils.runProjectConfigurationHealthCheckWhenEvaluated
|
||||
import org.jetbrains.kotlin.statistics.metrics.StringMetrics
|
||||
import org.jetbrains.kotlin.util.capitalizeDecapitalize.decapitalizeAsciiOnly
|
||||
|
||||
open class KotlinJsTargetPreset(
|
||||
project: Project
|
||||
@@ -117,7 +118,7 @@ class KotlinJsSingleTargetPreset(
|
||||
irPreset?.let {
|
||||
super.provideTargetDisambiguationClassifier(target)
|
||||
?.removePrefix(target.name.removeJsCompilerSuffix(KotlinJsCompilerType.LEGACY))
|
||||
?.decapitalize()
|
||||
?.decapitalizeAsciiOnly()
|
||||
}
|
||||
|
||||
override fun createKotlinTargetConfigurator() = KotlinJsTargetConfigurator()
|
||||
|
||||
+2
-1
@@ -14,6 +14,7 @@ import org.jetbrains.kotlin.gradle.plugin.statistics.KotlinBuildStatsService
|
||||
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
||||
import org.jetbrains.kotlin.gradle.utils.runProjectConfigurationHealthCheckWhenEvaluated
|
||||
import org.jetbrains.kotlin.statistics.metrics.StringMetrics
|
||||
import org.jetbrains.kotlin.util.capitalizeDecapitalize.decapitalizeAsciiOnly
|
||||
|
||||
open class KotlinJsIrTargetPreset(
|
||||
project: Project
|
||||
@@ -92,7 +93,7 @@ class KotlinJsIrSingleTargetPreset(
|
||||
return if (mixedMode!!) {
|
||||
super.provideTargetDisambiguationClassifier(target)
|
||||
?.removePrefix(target.name.removeJsCompilerSuffix(KotlinJsCompilerType.IR))
|
||||
?.decapitalize()
|
||||
?.decapitalizeAsciiOnly()
|
||||
} else {
|
||||
null
|
||||
}
|
||||
|
||||
+3
-2
@@ -24,6 +24,7 @@ import org.jetbrains.kotlin.gradle.targets.native.internal.CInteropIdentifier
|
||||
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
||||
import org.jetbrains.kotlin.gradle.utils.newInstance
|
||||
import org.jetbrains.kotlin.gradle.utils.property
|
||||
import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly
|
||||
import java.io.File
|
||||
import javax.inject.Inject
|
||||
|
||||
@@ -149,7 +150,7 @@ internal class DefaultCInteropSettingsFactory(private val compilation: KotlinCom
|
||||
val params = DefaultCInteropSettings.Params(
|
||||
name = name,
|
||||
identifier = CInteropIdentifier(CInteropIdentifier.Scope.create(compilation), name),
|
||||
dependencyConfigurationName = compilation.disambiguateName("${name.capitalize()}CInterop"),
|
||||
dependencyConfigurationName = compilation.disambiguateName("${name.capitalizeAsciiOnly()}CInterop"),
|
||||
interopProcessingTaskName = lowerCamelCaseName(
|
||||
"cinterop",
|
||||
compilation.name.takeIf { it != "main" }.orEmpty(),
|
||||
@@ -169,7 +170,7 @@ internal class GradleKpmDefaultCInteropSettingsFactory(private val compilation:
|
||||
val params = DefaultCInteropSettings.Params(
|
||||
name = name,
|
||||
identifier = CInteropIdentifier(CInteropIdentifier.Scope.create(compilation), name),
|
||||
dependencyConfigurationName = compilation.owner.disambiguateName("${name.capitalize()}CInterop"),
|
||||
dependencyConfigurationName = compilation.owner.disambiguateName("${name.capitalizeAsciiOnly()}CInterop"),
|
||||
interopProcessingTaskName = lowerCamelCaseName(
|
||||
"cinterop",
|
||||
compilation.compilationPurpose.takeIf { it != "main" }.orEmpty(),
|
||||
|
||||
+3
-2
@@ -46,6 +46,7 @@ import org.jetbrains.kotlin.gradle.testing.testTaskName
|
||||
import org.jetbrains.kotlin.gradle.utils.*
|
||||
import org.jetbrains.kotlin.konan.target.HostManager
|
||||
import org.jetbrains.kotlin.konan.target.KonanTarget
|
||||
import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly
|
||||
import java.io.File
|
||||
|
||||
open class KotlinNativeTargetConfigurator<T : KotlinNativeTarget> : AbstractKotlinTargetConfigurator<T>(
|
||||
@@ -144,7 +145,7 @@ open class KotlinNativeTargetConfigurator<T : KotlinNativeTarget> : AbstractKotl
|
||||
|
||||
fun configureFatFramework() {
|
||||
val fatFrameworkConfigurationName = lowerCamelCaseName(binary.name, binary.target.konanTarget.family.name.toLowerCase(), "fat")
|
||||
val fatFrameworkTaskName = "link${fatFrameworkConfigurationName.capitalize()}"
|
||||
val fatFrameworkTaskName = "link${fatFrameworkConfigurationName.capitalizeAsciiOnly()}"
|
||||
|
||||
val fatFrameworkTask = if (fatFrameworkTaskName in tasks.names) {
|
||||
tasks.named(fatFrameworkTaskName, FatFrameworkTask::class.java)
|
||||
@@ -567,7 +568,7 @@ open class KotlinNativeTargetConfigurator<T : KotlinNativeTarget> : AbstractKotl
|
||||
val realProducingTask: TaskProvider<*>
|
||||
// TODO: Someone remove this HACK PLEASE!
|
||||
val realArtifactFile = if (copy) {
|
||||
realProducingTask = project.project.registerTask<Copy>("copy${producingTask.name.capitalize()}") {
|
||||
realProducingTask = project.project.registerTask<Copy>("copy${producingTask.name.capitalizeAsciiOnly()}") {
|
||||
val targetSubDirectory = compilationInfo.targetDisambiguationClassifier?.let { "$it/" }.orEmpty()
|
||||
it.destinationDir = project.project.buildDir.resolve("libs/$targetSubDirectory${compilationInfo.compilationName}")
|
||||
it.from(artifactFile)
|
||||
|
||||
+3
-2
@@ -38,6 +38,7 @@ import org.jetbrains.kotlin.konan.target.Family
|
||||
import org.jetbrains.kotlin.konan.target.HostManager
|
||||
import org.jetbrains.kotlin.konan.target.KonanTarget
|
||||
import org.jetbrains.kotlin.konan.target.KonanTarget.*
|
||||
import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.cast
|
||||
import java.io.File
|
||||
|
||||
@@ -653,7 +654,7 @@ open class KotlinCocoapodsPlugin : Plugin<Project> {
|
||||
task.outputDir = cocoapodsExtension.publishDir
|
||||
task.buildType = buildType
|
||||
task.baseName = cocoapodsExtension.podFrameworkName
|
||||
task.description = "Produces ${buildType.getName().capitalize()} XCFramework for all requested targets"
|
||||
task.description = "Produces ${buildType.getName().capitalizeAsciiOnly()} XCFramework for all requested targets"
|
||||
task.group = TASK_GROUP
|
||||
}
|
||||
}
|
||||
@@ -667,7 +668,7 @@ open class KotlinCocoapodsPlugin : Plugin<Project> {
|
||||
with(project) {
|
||||
val task =
|
||||
tasks.register(lowerCamelCaseName(POD_FRAMEWORK_PREFIX, "spec", buildType.getName()), PodspecTask::class.java) { task ->
|
||||
task.description = "Generates podspec for ${buildType.getName().capitalize()} XCFramework publishing"
|
||||
task.description = "Generates podspec for ${buildType.getName().capitalizeAsciiOnly()} XCFramework publishing"
|
||||
task.outputDir.set(xcFrameworkTask.map { it.outputDir.resolve(it.buildType.getName()) })
|
||||
task.needPodspec = provider { true }
|
||||
task.publishing.set(true)
|
||||
|
||||
+2
-1
@@ -18,6 +18,7 @@ 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.readSystemPropertyAtConfigurationTime
|
||||
import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly
|
||||
|
||||
/**
|
||||
* Internal service for creating aggregated test tasks and registering all test tasks.
|
||||
@@ -111,7 +112,7 @@ class KotlinTestsRegistry(val project: Project, val allTestsTaskName: String = "
|
||||
|
||||
private fun cleanTaskName(taskName: String): String {
|
||||
check(taskName.isNotEmpty())
|
||||
return "clean" + taskName.capitalize()
|
||||
return "clean" + taskName.capitalizeAsciiOnly()
|
||||
}
|
||||
|
||||
private val Project.cleanAllTestTask: TaskProvider<*>
|
||||
|
||||
+2
-1
@@ -5,6 +5,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.gradle.utils
|
||||
|
||||
import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly
|
||||
import java.util.*
|
||||
|
||||
internal fun lowerCamelCaseName(vararg nameParts: String?): String {
|
||||
@@ -12,7 +13,7 @@ internal fun lowerCamelCaseName(vararg nameParts: String?): String {
|
||||
return nonEmptyParts.drop(1).joinToString(
|
||||
separator = "",
|
||||
prefix = nonEmptyParts.firstOrNull().orEmpty(),
|
||||
transform = String::capitalize
|
||||
transform = String::capitalizeAsciiOnly
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user