From a22062476902aba60e33385774e5e77bf2345c2e Mon Sep 17 00:00:00 2001 From: Pavel Kirpichenkov Date: Wed, 26 Jan 2022 20:47:12 +0300 Subject: [PATCH] [Commonizer] move commonizer setting keys to the commonizer-cli module Get rid of `OptionAlias` as unnecessary; keys will be used directly --- .../AbstractCInteropCommonizerTask.kt | 4 -- .../internal/CommonizerProjectExtensions.kt | 6 +-- .../NativeDistributionCommonizationCache.kt | 2 +- .../kotlin/commonizer/CliCommonizer.kt | 32 +++++++------- .../jetbrains/kotlin/commonizer/Commonizer.kt | 15 +++---- .../kotlin/commonizer/CommonizerSettings.kt | 24 +++++++++++ .../commonizer/cli/CommonizerArguments.kt | 43 +++++-------------- .../kotlin/commonizer/CommonizerSettings.kt | 13 ------ .../commonizer/cli/BooleanOptionType.kt | 2 +- .../cli/CommonizerSettingOptionType.kt | 5 +-- .../cli/DependenciesLibrariesSetOptionType.kt | 2 +- .../cli/DependencyLibrariesOptionType.kt | 2 +- .../cli/InputLibrariesOptionType.kt | 2 +- .../commonizer/cli/LibrariesSetOptionType.kt | 2 +- .../commonizer/cli/LogLevelOptionType.kt | 2 +- .../cli/NativeDistributionOptionType.kt | 2 +- .../commonizer/cli/NativeTargetsOptionType.kt | 2 +- ...OptimisticNumberCommonizationOptionType.kt | 3 +- .../kotlin/commonizer/cli/OptionType.kt | 2 +- .../cli/OutputCommonizerTargetsOptionType.kt | 2 +- .../kotlin/commonizer/cli/OutputOptionType.kt | 2 +- .../commonizer/cli/StatsTypeOptionType.kt | 2 +- .../jetbrains/kotlin/commonizer/cli/Task.kt | 4 +- .../kotlin/commonizer/cli/TaskType.kt | 4 +- .../jetbrains/kotlin/commonizer/cli/cli.kt | 4 +- 25 files changed, 83 insertions(+), 100 deletions(-) create mode 100644 native/commonizer-api/src/org/jetbrains/kotlin/commonizer/CommonizerSettings.kt diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/AbstractCInteropCommonizerTask.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/AbstractCInteropCommonizerTask.kt index ba36d6b2808..58dc3e92441 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/AbstractCInteropCommonizerTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/AbstractCInteropCommonizerTask.kt @@ -6,16 +6,12 @@ package org.jetbrains.kotlin.gradle.targets.native.internal import org.gradle.api.DefaultTask -import org.gradle.api.Project import org.gradle.api.file.FileCollection import org.gradle.api.tasks.OutputDirectory import org.jetbrains.kotlin.commonizer.CommonizerOutputFileLayout import org.jetbrains.kotlin.commonizer.CommonizerOutputFileLayout.base64Hash import org.jetbrains.kotlin.commonizer.CommonizerOutputFileLayout.ensureMaxFileNameLength -import org.jetbrains.kotlin.commonizer.AdditionalCommonizerSetting -import org.jetbrains.kotlin.commonizer.cli.OPTIMISTIC_NUMBER_COMMONIZATION_ENABLED_OPTION_ALIAS import org.jetbrains.kotlin.commonizer.identityString -import org.jetbrains.kotlin.commonizer.setTo import org.jetbrains.kotlin.gradle.utils.outputFilesProvider import java.io.File diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/CommonizerProjectExtensions.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/CommonizerProjectExtensions.kt index 1b1fa8b64cd..0c42c4ac964 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/CommonizerProjectExtensions.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/CommonizerProjectExtensions.kt @@ -8,7 +8,7 @@ package org.jetbrains.kotlin.gradle.targets.native.internal import org.gradle.api.Project import org.jetbrains.kotlin.commonizer.AdditionalCommonizerSetting import org.jetbrains.kotlin.commonizer.CommonizerLogLevel -import org.jetbrains.kotlin.commonizer.cli.OPTIMISTIC_NUMBER_COMMONIZATION_ENABLED_OPTION_ALIAS +import org.jetbrains.kotlin.commonizer.OptimisticNumberCommonizationEnabledKey import org.jetbrains.kotlin.commonizer.setTo import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider @@ -22,7 +22,7 @@ internal val Project.commonizerLogLevel: CommonizerLogLevel return if (logger.isInfoEnabled) CommonizerLogLevel.Info else CommonizerLogLevel.Quiet } -internal val Project.additionalCommonizerSettings: List +internal val Project.additionalCommonizerSettings: List> get() = listOf( - OPTIMISTIC_NUMBER_COMMONIZATION_ENABLED_OPTION_ALIAS setTo isOptimisticNumberCommonizationEnabled + OptimisticNumberCommonizationEnabledKey setTo isOptimisticNumberCommonizationEnabled ) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/NativeDistributionCommonizationCache.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/NativeDistributionCommonizationCache.kt index c8b2a263e7d..a55d4cf1ce6 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/NativeDistributionCommonizationCache.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/NativeDistributionCommonizationCache.kt @@ -27,7 +27,7 @@ internal class NativeDistributionCommonizationCache( outputDirectory: File, outputTargets: Set, logLevel: CommonizerLogLevel, - additionalSettings: List, + additionalSettings: List>, ) { if (!project.isNativeDistributionCommonizationCacheEnabled) { logInfo("Cache disabled") diff --git a/native/commonizer-api/src/org/jetbrains/kotlin/commonizer/CliCommonizer.kt b/native/commonizer-api/src/org/jetbrains/kotlin/commonizer/CliCommonizer.kt index 7df54001742..6f9413f6015 100644 --- a/native/commonizer-api/src/org/jetbrains/kotlin/commonizer/CliCommonizer.kt +++ b/native/commonizer-api/src/org/jetbrains/kotlin/commonizer/CliCommonizer.kt @@ -29,21 +29,21 @@ public class CliCommonizer(private val executor: Executor) : NativeDistributionC outputTargets: Set, outputDirectory: File, logLevel: CommonizerLogLevel, - additionalSettings: List, + additionalSettings: List>, ) { if (inputLibraries.isEmpty()) return val arguments = mutableListOf().apply { add("native-klib-commonize") - add(NATIVE_DISTRIBUTION_OPTION_ALIAS.argumentString); add(konanHome.absolutePath) - add(INPUT_LIBRARIES_OPTION_ALIAS.argumentString); add(inputLibraries.joinToString(";") { it.absolutePath }) - add(OUTPUT_COMMONIZER_TARGET_OPTION_ALIAS.argumentString); add(outputTargets.joinToString(";") { it.identityString }) - add(OUTPUT_OPTION_ALIAS.argumentString); add(outputDirectory.absolutePath) + add("-$NATIVE_DISTRIBUTION_PATH_ALIAS"); add(konanHome.absolutePath) + add("-$INPUT_LIBRARIES_ALIAS"); add(inputLibraries.joinToString(";") { it.absolutePath }) + add("-$OUTPUT_COMMONIZER_TARGETS_ALIAS"); add(outputTargets.joinToString(";") { it.identityString }) + add("-$OUTPUT_PATH_ALIAS"); add(outputDirectory.absolutePath) if (dependencyLibraries.isNotEmpty()) { - add(DEPENDENCY_LIBRARIES_OPTION_ALIAS.argumentString); add(dependencyLibraries.joinToString(";")) + add("-$DEPENDENCY_LIBRARIES_ALIAS"); add(dependencyLibraries.joinToString(";")) } - add(LOG_LEVEL_OPTION_ALIAS.argumentString); add(logLevel.name.lowercase()) - for ((settingArgument, settingValue) in additionalSettings) { - add(settingArgument); add(settingValue.toString()) + add("-$LOG_LEVEL_ALIAS"); add(logLevel.name.lowercase()) + for ((settingKey, settingValue) in additionalSettings) { + add("-${settingKey.alias}"); add(settingValue.toString()) } } executor(arguments) @@ -54,16 +54,16 @@ public class CliCommonizer(private val executor: Executor) : NativeDistributionC outputDirectory: File, outputTargets: Set, logLevel: CommonizerLogLevel, - additionalSettings: List, + additionalSettings: List>, ) { val arguments = mutableListOf().apply { add("native-dist-commonize") - add(NATIVE_DISTRIBUTION_OPTION_ALIAS.argumentString); add(konanHome.absolutePath) - add(OUTPUT_OPTION_ALIAS.argumentString); add(outputDirectory.absolutePath) - add(OUTPUT_COMMONIZER_TARGET_OPTION_ALIAS.argumentString); add(outputTargets.joinToString(";") { it.identityString }) - add(LOG_LEVEL_OPTION_ALIAS.argumentString); add(logLevel.name.lowercase()) - for ((settingArgument, settingValue) in additionalSettings) { - add(settingArgument); add(settingValue.toString()) + add("-$NATIVE_DISTRIBUTION_PATH_ALIAS"); add(konanHome.absolutePath) + add("-$OUTPUT_PATH_ALIAS"); add(outputDirectory.absolutePath) + add("-$OUTPUT_COMMONIZER_TARGETS_ALIAS"); add(outputTargets.joinToString(";") { it.identityString }) + add("-$LOG_LEVEL_ALIAS"); add(logLevel.name.lowercase()) + for ((settingKey, settingValue) in additionalSettings) { + add("-${settingKey.alias}"); add(settingValue.toString()) } } diff --git a/native/commonizer-api/src/org/jetbrains/kotlin/commonizer/Commonizer.kt b/native/commonizer-api/src/org/jetbrains/kotlin/commonizer/Commonizer.kt index 586e40e1094..55f3307b8a7 100644 --- a/native/commonizer-api/src/org/jetbrains/kotlin/commonizer/Commonizer.kt +++ b/native/commonizer-api/src/org/jetbrains/kotlin/commonizer/Commonizer.kt @@ -5,7 +5,6 @@ package org.jetbrains.kotlin.commonizer -import org.jetbrains.kotlin.commonizer.cli.OptionAlias import java.io.File import java.io.Serializable @@ -18,7 +17,7 @@ public interface CInteropCommonizer : Serializable { outputTargets: Set, outputDirectory: File, logLevel: CommonizerLogLevel = CommonizerLogLevel.Quiet, - additionalSettings: List = emptyList(), + additionalSettings: List> = emptyList(), ) } @@ -29,14 +28,14 @@ public interface NativeDistributionCommonizer : Serializable { outputDirectory: File, outputTargets: Set, logLevel: CommonizerLogLevel = CommonizerLogLevel.Quiet, - additionalSettings: List = emptyList(), + additionalSettings: List> = emptyList(), ) } -public data class AdditionalCommonizerSetting( - public val key: String, - public val value: Any, +public data class AdditionalCommonizerSetting( + public val key: CommonizerSettings.Key, + public val value: T, ) -public infix fun OptionAlias.setTo(settingValue: Any): AdditionalCommonizerSetting = - AdditionalCommonizerSetting(this.argumentString, settingValue) +public infix fun CommonizerSettings.Key.setTo(settingValue: T): AdditionalCommonizerSetting = + AdditionalCommonizerSetting(this, settingValue) diff --git a/native/commonizer-api/src/org/jetbrains/kotlin/commonizer/CommonizerSettings.kt b/native/commonizer-api/src/org/jetbrains/kotlin/commonizer/CommonizerSettings.kt new file mode 100644 index 00000000000..92f6b87c742 --- /dev/null +++ b/native/commonizer-api/src/org/jetbrains/kotlin/commonizer/CommonizerSettings.kt @@ -0,0 +1,24 @@ +/* + * Copyright 2010-2022 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. + */ + +package org.jetbrains.kotlin.commonizer + +import org.jetbrains.kotlin.commonizer.cli.OPTIMISTIC_NUMBER_COMMONIZATION_ENABLED_ALIAS + +public interface CommonizerSettings { + + public sealed class Key { + public abstract val defaultValue: T + public abstract val alias: String + } + + public fun getSetting(key: Key): T +} + +public object OptimisticNumberCommonizationEnabledKey : CommonizerSettings.Key() { + override val defaultValue: Boolean = true + override val alias: String + get() = OPTIMISTIC_NUMBER_COMMONIZATION_ENABLED_ALIAS +} diff --git a/native/commonizer-api/src/org/jetbrains/kotlin/commonizer/cli/CommonizerArguments.kt b/native/commonizer-api/src/org/jetbrains/kotlin/commonizer/cli/CommonizerArguments.kt index b33008ab442..e2b897357e8 100644 --- a/native/commonizer-api/src/org/jetbrains/kotlin/commonizer/cli/CommonizerArguments.kt +++ b/native/commonizer-api/src/org/jetbrains/kotlin/commonizer/cli/CommonizerArguments.kt @@ -7,37 +7,16 @@ package org.jetbrains.kotlin.commonizer.cli // General -private const val DEPENDENCY_LIBRARIES_ALIAS: String = "dependency-libraries" -private const val INPUT_LIBRARIES_ALIAS: String = "input-libraries" -private const val LOG_LEVEL_ALIAS: String = "log-level" -private const val NATIVE_DISTRIBUTION_PATH_ALIAS: String = "distribution-path" -private const val OUTPUT_COMMONIZER_TARGETS_ALIAS: String = "output-targets" -private const val OUTPUT_PATH_ALIAS: String = "output-path" -private const val STATS_TYPE_ALIAS: String = "log-stats" -private const val NATIVE_TARGETS_ALIAS: String = "targets" -private const val COPY_STDLIB_ALIAS: String = "copy-stdlib" -private const val COPY_ENDORSED_LIBS_ALIAS: String = "copy-endorsed-libs" - -public val DEPENDENCY_LIBRARIES_OPTION_ALIAS: OptionAlias = OptionAlias(DEPENDENCY_LIBRARIES_ALIAS) -public val INPUT_LIBRARIES_OPTION_ALIAS: OptionAlias = OptionAlias(INPUT_LIBRARIES_ALIAS) -public val LOG_LEVEL_OPTION_ALIAS: OptionAlias = OptionAlias(LOG_LEVEL_ALIAS) -public val NATIVE_DISTRIBUTION_OPTION_ALIAS: OptionAlias = OptionAlias(NATIVE_DISTRIBUTION_PATH_ALIAS) -public val OUTPUT_COMMONIZER_TARGET_OPTION_ALIAS: OptionAlias = OptionAlias(OUTPUT_COMMONIZER_TARGETS_ALIAS) -public val OUTPUT_OPTION_ALIAS: OptionAlias = OptionAlias(OUTPUT_PATH_ALIAS) -public val STATS_TYPE_OPTION_ALIAS: OptionAlias = OptionAlias(STATS_TYPE_ALIAS) -public val NATIVE_TARGETS_OPTION_ALIAS: OptionAlias = OptionAlias(NATIVE_TARGETS_ALIAS) -public val COPY_STDLIB_OPTION_ALIAS: OptionAlias = OptionAlias(COPY_STDLIB_ALIAS) -public val COPY_ENDORSED_LIBS_OPTION_ALIAS: OptionAlias = OptionAlias(COPY_ENDORSED_LIBS_ALIAS) +public const val DEPENDENCY_LIBRARIES_ALIAS: String = "dependency-libraries" +public const val INPUT_LIBRARIES_ALIAS: String = "input-libraries" +public const val LOG_LEVEL_ALIAS: String = "log-level" +public const val NATIVE_DISTRIBUTION_PATH_ALIAS: String = "distribution-path" +public const val OUTPUT_COMMONIZER_TARGETS_ALIAS: String = "output-targets" +public const val OUTPUT_PATH_ALIAS: String = "output-path" +public const val STATS_TYPE_ALIAS: String = "log-stats" +public const val NATIVE_TARGETS_ALIAS: String = "targets" +public const val COPY_STDLIB_ALIAS: String = "copy-stdlib" +public const val COPY_ENDORSED_LIBS_ALIAS: String = "copy-endorsed-libs" // Commonizer settings -private const val OPTIMISTIC_NUMBER_COMMONIZATION_ENABLED_ALIAS: String = "optimistic-numbers" - -public val OPTIMISTIC_NUMBER_COMMONIZATION_ENABLED_OPTION_ALIAS: OptionAlias = OptionAlias(OPTIMISTIC_NUMBER_COMMONIZATION_ENABLED_ALIAS) - -@JvmInline -public value class OptionAlias(public val aliasString: String) { - public val argumentString: String - get() = "-$aliasString" - - override fun toString(): String = aliasString -} +public const val OPTIMISTIC_NUMBER_COMMONIZATION_ENABLED_ALIAS: String = "optimistic-numbers" diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/CommonizerSettings.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/CommonizerSettings.kt index 94e53961b80..d117fb217af 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/CommonizerSettings.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/CommonizerSettings.kt @@ -5,19 +5,6 @@ package org.jetbrains.kotlin.commonizer -interface CommonizerSettings { - - sealed class Key { - abstract val defaultValue: T - } - - fun getSetting(key: Key): T -} - -object OptimisticNumberCommonizationEnabledKey : CommonizerSettings.Key() { - override val defaultValue: Boolean = true -} - internal object DefaultCommonizerSettings : CommonizerSettings { override fun getSetting(key: CommonizerSettings.Key): T { return key.defaultValue diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/BooleanOptionType.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/BooleanOptionType.kt index 61b8d470453..dfe9c4c3a8e 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/BooleanOptionType.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/BooleanOptionType.kt @@ -6,7 +6,7 @@ package org.jetbrains.kotlin.commonizer.cli internal class BooleanOptionType( - alias: OptionAlias, + alias: String, description: String, mandatory: Boolean ) : OptionType(alias, description, mandatory) { diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/CommonizerSettingOptionType.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/CommonizerSettingOptionType.kt index 5f677638b14..7507a6f2a36 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/CommonizerSettingOptionType.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/CommonizerSettingOptionType.kt @@ -8,11 +8,10 @@ package org.jetbrains.kotlin.commonizer.cli import org.jetbrains.kotlin.commonizer.CommonizerSettings internal sealed class CommonizerSettingOptionType( - alias: OptionAlias, + val commonizerSettingKey: CommonizerSettings.Key, description: String, - val commonizerSettingKey: CommonizerSettings.Key ) : OptionType( - alias, + commonizerSettingKey.alias, description, mandatory = false, ) diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/DependenciesLibrariesSetOptionType.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/DependenciesLibrariesSetOptionType.kt index 2bdf943f2e8..fdfe6b54202 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/DependenciesLibrariesSetOptionType.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/DependenciesLibrariesSetOptionType.kt @@ -10,7 +10,7 @@ import org.jetbrains.kotlin.commonizer.parseCommonizerDependency internal abstract class DependenciesLibrariesSetOptionType( mandatory: Boolean, - alias: OptionAlias, + alias: String, description: String ) : OptionType>( mandatory = mandatory, diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/DependencyLibrariesOptionType.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/DependencyLibrariesOptionType.kt index f804adec76e..44f85146c46 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/DependencyLibrariesOptionType.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/DependencyLibrariesOptionType.kt @@ -7,6 +7,6 @@ package org.jetbrains.kotlin.commonizer.cli internal object DependencyLibrariesOptionType : DependenciesLibrariesSetOptionType( mandatory = false, - alias = DEPENDENCY_LIBRARIES_OPTION_ALIAS, + alias = DEPENDENCY_LIBRARIES_ALIAS, description = "';' separated list of klib file paths that can be used as dependency" ) diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/InputLibrariesOptionType.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/InputLibrariesOptionType.kt index a867ad7ea41..c0ed0639a92 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/InputLibrariesOptionType.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/InputLibrariesOptionType.kt @@ -7,6 +7,6 @@ package org.jetbrains.kotlin.commonizer.cli internal object InputLibrariesOptionType : LibrariesSetOptionType( mandatory = true, - alias = INPUT_LIBRARIES_OPTION_ALIAS, + alias = INPUT_LIBRARIES_ALIAS, description = "';' separated list of klib file paths that will get commonized" ) diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/LibrariesSetOptionType.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/LibrariesSetOptionType.kt index f0a40285803..7f21b08b58c 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/LibrariesSetOptionType.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/LibrariesSetOptionType.kt @@ -9,7 +9,7 @@ import java.io.File internal abstract class LibrariesSetOptionType( mandatory: Boolean, - alias: OptionAlias, + alias: String, description: String ) : OptionType>( mandatory = mandatory, diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/LogLevelOptionType.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/LogLevelOptionType.kt index c827ad0a48a..0a98c20610d 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/LogLevelOptionType.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/LogLevelOptionType.kt @@ -7,7 +7,7 @@ package org.jetbrains.kotlin.commonizer.cli import org.jetbrains.kotlin.commonizer.CommonizerLogLevel -internal object LogLevelOptionType : OptionType(LOG_LEVEL_OPTION_ALIAS, "{quiet, info}", false) { +internal object LogLevelOptionType : OptionType(LOG_LEVEL_ALIAS, "{quiet, info}", false) { override fun parse(rawValue: String, onError: (reason: String) -> Nothing): Option { return when (rawValue.lowercase().trim()) { "quiet" -> Option(this, CommonizerLogLevel.Quiet) diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/NativeDistributionOptionType.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/NativeDistributionOptionType.kt index d05ef139238..53f239094fb 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/NativeDistributionOptionType.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/NativeDistributionOptionType.kt @@ -7,7 +7,7 @@ package org.jetbrains.kotlin.commonizer.cli import java.io.File -internal object NativeDistributionOptionType : OptionType(NATIVE_DISTRIBUTION_OPTION_ALIAS, "Path to the Kotlin/Native distribution") { +internal object NativeDistributionOptionType : OptionType(NATIVE_DISTRIBUTION_PATH_ALIAS, "Path to the Kotlin/Native distribution") { override fun parse(rawValue: String, onError: (reason: String) -> Nothing): Option { val file = File(rawValue) diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/NativeTargetsOptionType.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/NativeTargetsOptionType.kt index 51bac4cde22..8602cbe9ee7 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/NativeTargetsOptionType.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/NativeTargetsOptionType.kt @@ -9,7 +9,7 @@ import org.jetbrains.kotlin.konan.target.KonanTarget import org.jetbrains.kotlin.konan.target.KonanTarget.Companion.predefinedTargets internal object NativeTargetsOptionType : OptionType>( - NATIVE_TARGETS_OPTION_ALIAS, "Comma-separated list of hardware targets", mandatory = false + NATIVE_TARGETS_ALIAS, "Comma-separated list of hardware targets", mandatory = false ) { override fun parse(rawValue: String, onError: (reason: String) -> Nothing): Option> { val targetNames = rawValue.split(',') diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/OptimisticNumberCommonizationOptionType.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/OptimisticNumberCommonizationOptionType.kt index 34480ad347d..a52b5fa5af5 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/OptimisticNumberCommonizationOptionType.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/OptimisticNumberCommonizationOptionType.kt @@ -8,9 +8,8 @@ package org.jetbrains.kotlin.commonizer.cli import org.jetbrains.kotlin.commonizer.OptimisticNumberCommonizationEnabledKey internal object OptimisticNumberCommonizationOptionType : CommonizerSettingOptionType( - OPTIMISTIC_NUMBER_COMMONIZATION_ENABLED_OPTION_ALIAS, - "Boolean (default true)\nEnable commonization of integer types with different bit width to the most narrow among them", OptimisticNumberCommonizationEnabledKey, + "Boolean (default true)\nEnable commonization of integer types with different bit width to the most narrow among them", ) { override fun parse(rawValue: String, onError: (reason: String) -> Nothing): Option = Option(this, parseBoolean(rawValue, onError)) diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/OptionType.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/OptionType.kt index e95fec4f95c..f20f6136ac0 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/OptionType.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/OptionType.kt @@ -6,7 +6,7 @@ package org.jetbrains.kotlin.commonizer.cli internal abstract class OptionType( - val alias: OptionAlias, + val alias: String, val description: String, val mandatory: Boolean = true ) { diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/OutputCommonizerTargetsOptionType.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/OutputCommonizerTargetsOptionType.kt index 03b4174031d..dc2571c64ad 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/OutputCommonizerTargetsOptionType.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/OutputCommonizerTargetsOptionType.kt @@ -9,7 +9,7 @@ import org.jetbrains.kotlin.commonizer.SharedCommonizerTarget import org.jetbrains.kotlin.commonizer.parseCommonizerTarget internal object OutputCommonizerTargetsOptionType : OptionType>( - alias = OUTPUT_COMMONIZER_TARGET_OPTION_ALIAS, + alias = OUTPUT_COMMONIZER_TARGETS_ALIAS, description = "All output targets separated with ';'", mandatory = true ) { diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/OutputOptionType.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/OutputOptionType.kt index 81cc2d8f7f5..f2732ded10d 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/OutputOptionType.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/OutputOptionType.kt @@ -7,7 +7,7 @@ package org.jetbrains.kotlin.commonizer.cli import java.io.File -internal object OutputOptionType : OptionType(OUTPUT_OPTION_ALIAS, "Destination for commonized libraries") { +internal object OutputOptionType : OptionType(OUTPUT_PATH_ALIAS, "Destination for commonized libraries") { override fun parse(rawValue: String, onError: (reason: String) -> Nothing): Option { val file = File(rawValue) diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/StatsTypeOptionType.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/StatsTypeOptionType.kt index c53bbbcc3bf..438a8cc2c3a 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/StatsTypeOptionType.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/StatsTypeOptionType.kt @@ -7,7 +7,7 @@ package org.jetbrains.kotlin.commonizer.cli import org.jetbrains.kotlin.commonizer.stats.StatsType -internal object StatsTypeOptionType : OptionType(STATS_TYPE_OPTION_ALIAS, DESCRIPTION, mandatory = false) { +internal object StatsTypeOptionType : OptionType(STATS_TYPE_ALIAS, DESCRIPTION, mandatory = false) { override fun parse(rawValue: String, onError: (reason: String) -> Nothing): Option { val value = StatsType.values().firstOrNull { it.name.equals(rawValue, ignoreCase = true) } ?: onError("Invalid stats type: $rawValue") diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/Task.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/Task.kt index 31f70c951a5..c722afb0c04 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/Task.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/Task.kt @@ -30,7 +30,7 @@ internal abstract class Task(private val options: Collection>) : Compa abstract fun execute(logPrefix: String = "") protected inline fun > getMandatory(nameFilter: (String) -> Boolean = { true }): T { - val option = options.filter { it.type is O }.single { nameFilter(it.type.alias.aliasString) } + val option = options.filter { it.type is O }.single { nameFilter(it.type.alias) } check(option.type.mandatory) @Suppress("UNCHECKED_CAST") @@ -38,7 +38,7 @@ internal abstract class Task(private val options: Collection>) : Compa } internal inline fun > getOptional(nameFilter: (String) -> Boolean = { true }): T? { - val option = options.filter { it.type is O }.singleOrNull { nameFilter(it.type.alias.aliasString) } + val option = options.filter { it.type is O }.singleOrNull { nameFilter(it.type.alias) } if (option != null) check(!option.type.mandatory) @Suppress("UNCHECKED_CAST") diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/TaskType.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/TaskType.kt index e20994860ad..0aa79253a59 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/TaskType.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/TaskType.kt @@ -20,12 +20,12 @@ internal enum class TaskType( NativeTargetsOptionType, OutputCommonizerTargetsOptionType, BooleanOptionType( - COPY_STDLIB_OPTION_ALIAS, + COPY_STDLIB_ALIAS, "Boolean (default false);\nwhether to copy Kotlin/Native endorsed libraries to the destination", mandatory = false ), BooleanOptionType( - COPY_ENDORSED_LIBS_OPTION_ALIAS, + COPY_ENDORSED_LIBS_ALIAS, "Boolean (default false);\nwhether to copy Kotlin/Native endorsed libraries to the destination", mandatory = false ), diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/cli.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/cli.kt index 41a71542076..2e2b235c534 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/cli.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cli/cli.kt @@ -46,7 +46,7 @@ private fun parseTask( tasks: MutableList ): String? { val taskType = TaskType.getByAlias(taskAlias) ?: printUsageAndExit("Unknown task $taskAlias") - val optionTypes = taskType.optionTypes.associateBy { it.alias.aliasString } + val optionTypes = taskType.optionTypes.associateBy { it.alias } val options = mutableMapOf>() fun buildOngoingTask() { @@ -117,7 +117,7 @@ private fun printUsageAndExit(errorMessage: String? = null): Nothing { println(formatLeft(1, if (taskType.optionTypes.isNotEmpty()) "Options:" else "No options.")) for (optionType in taskType.optionTypes) { val lines = optionType.description.split('\n') - println(formatBoth(2, "-${optionType.alias.aliasString}", lines.first())) + println(formatBoth(2, "-${optionType.alias}", lines.first())) lines.drop(1).forEach { println(StringBuilder().formatRight(it)) } } println()