Mark compiler arguments that should generate deprecated kotlinOptions DSL

This will allow to keep backward compatiblity for deprecated
kotlinOptions DSL for already existing compiler arguments, but add a new
 one only into compilerOptions DSL.

^KT-53108 In Progress
This commit is contained in:
Yahor Berdnikau
2023-01-09 11:26:04 +01:00
committed by Space Team
parent 671aa68ad6
commit 43eea47032
7 changed files with 67 additions and 32 deletions
@@ -33,7 +33,8 @@ abstract class CommonCompilerArguments : CommonToolArguments() {
@GradleOption(
value = DefaultValue.LANGUAGE_VERSIONS,
gradleInputType = GradleInputTypes.INPUT
gradleInputType = GradleInputTypes.INPUT,
shouldGenerateDeprecatedKotlinOptions = true,
)
@Argument(
value = "-language-version",
@@ -47,7 +48,8 @@ abstract class CommonCompilerArguments : CommonToolArguments() {
@GradleOption(
value = DefaultValue.API_VERSIONS,
gradleInputType = GradleInputTypes.INPUT
gradleInputType = GradleInputTypes.INPUT,
shouldGenerateDeprecatedKotlinOptions = true,
)
@Argument(
value = "-api-version",
@@ -298,7 +300,8 @@ abstract class CommonCompilerArguments : CommonToolArguments() {
@GradleOption(
DefaultValue.BOOLEAN_FALSE_DEFAULT,
gradleInputType = GradleInputTypes.INPUT
gradleInputType = GradleInputTypes.INPUT,
shouldGenerateDeprecatedKotlinOptions = true,
)
@Argument(
value = "-Xuse-k2",
@@ -40,21 +40,24 @@ abstract class CommonToolArguments : Freezable(), Serializable {
@GradleOption(
value = DefaultValue.BOOLEAN_FALSE_DEFAULT,
gradleInputType = GradleInputTypes.INTERNAL
gradleInputType = GradleInputTypes.INTERNAL,
shouldGenerateDeprecatedKotlinOptions = true,
)
@Argument(value = "-verbose", description = "Enable verbose logging output")
var verbose: Boolean by FreezableVar(false)
@GradleOption(
value = DefaultValue.BOOLEAN_FALSE_DEFAULT,
gradleInputType = GradleInputTypes.INTERNAL
gradleInputType = GradleInputTypes.INTERNAL,
shouldGenerateDeprecatedKotlinOptions = true,
)
@Argument(value = "-nowarn", description = "Generate no warnings")
var suppressWarnings: Boolean by FreezableVar(false)
@GradleOption(
value = DefaultValue.BOOLEAN_FALSE_DEFAULT,
gradleInputType = GradleInputTypes.INPUT
gradleInputType = GradleInputTypes.INPUT,
shouldGenerateDeprecatedKotlinOptions = true,
)
@Argument(value = "-Werror", description = "Report an error if there are any warnings")
var allWarningsAsErrors: Boolean by FreezableVar(false)
@@ -26,7 +26,8 @@ import kotlin.reflect.KVisibility
@Retention(AnnotationRetention.RUNTIME)
annotation class GradleOption(
val value: Int,
val gradleInputType: String
val gradleInputType: String,
val shouldGenerateDeprecatedKotlinOptions: Boolean = false
)
// Enum class here is not possible due to bug in K2 compiler:
@@ -19,7 +19,8 @@ class K2JSCompilerArguments : CommonCompilerArguments() {
@GradleOption(
value = DefaultValue.STRING_NULL_DEFAULT,
gradleInputType = GradleInputTypes.INTERNAL // handled by task 'outputFileProperty'
gradleInputType = GradleInputTypes.INTERNAL, // handled by task 'outputFileProperty'
shouldGenerateDeprecatedKotlinOptions = true,
)
@GradleDeprecatedOption(
message = "Only for legacy backend. For IR backend please use task.destinationDirectory and moduleName",
@@ -34,14 +35,16 @@ class K2JSCompilerArguments : CommonCompilerArguments() {
@GradleOption(
value = DefaultValue.STRING_NULL_DEFAULT,
gradleInputType = GradleInputTypes.INPUT
gradleInputType = GradleInputTypes.INPUT,
shouldGenerateDeprecatedKotlinOptions = true,
)
@Argument(value = "-ir-output-name", description = "Base name of generated files")
var moduleName: String? by NullableStringFreezableVar(null)
@GradleOption(
value = DefaultValue.BOOLEAN_TRUE_DEFAULT,
gradleInputType = GradleInputTypes.INPUT
gradleInputType = GradleInputTypes.INPUT,
shouldGenerateDeprecatedKotlinOptions = true,
)
@Argument(value = "-no-stdlib", description = "Don't automatically include the default Kotlin/JS stdlib into compilation dependencies")
var noStdlib: Boolean by FreezableVar(false)
@@ -62,14 +65,16 @@ class K2JSCompilerArguments : CommonCompilerArguments() {
@GradleOption(
value = DefaultValue.BOOLEAN_FALSE_DEFAULT,
gradleInputType = GradleInputTypes.INPUT
gradleInputType = GradleInputTypes.INPUT,
shouldGenerateDeprecatedKotlinOptions = true,
)
@Argument(value = "-source-map", description = "Generate source map")
var sourceMap: Boolean by FreezableVar(false)
@GradleOption(
value = DefaultValue.STRING_NULL_DEFAULT,
gradleInputType = GradleInputTypes.INPUT
gradleInputType = GradleInputTypes.INPUT,
shouldGenerateDeprecatedKotlinOptions = true,
)
@Argument(value = "-source-map-prefix", description = "Add the specified prefix to paths in the source map")
var sourceMapPrefix: String? by NullableStringFreezableVar(null)
@@ -88,7 +93,8 @@ class K2JSCompilerArguments : CommonCompilerArguments() {
*/
@GradleOption(
value = DefaultValue.JS_SOURCE_MAP_CONTENT_MODES,
gradleInputType = GradleInputTypes.INPUT
gradleInputType = GradleInputTypes.INPUT,
shouldGenerateDeprecatedKotlinOptions = true,
)
@Argument(
value = "-source-map-embed-sources",
@@ -99,7 +105,8 @@ class K2JSCompilerArguments : CommonCompilerArguments() {
@GradleOption(
value = DefaultValue.JS_SOURCE_MAP_NAMES_POLICY,
gradleInputType = GradleInputTypes.INPUT
gradleInputType = GradleInputTypes.INPUT,
shouldGenerateDeprecatedKotlinOptions = true,
)
@Argument(
value = "-source-map-names-policy",
@@ -110,14 +117,16 @@ class K2JSCompilerArguments : CommonCompilerArguments() {
@GradleOption(
value = DefaultValue.BOOLEAN_TRUE_DEFAULT,
gradleInputType = GradleInputTypes.INPUT
gradleInputType = GradleInputTypes.INPUT,
shouldGenerateDeprecatedKotlinOptions = true,
)
@Argument(value = "-meta-info", description = "Generate .meta.js and .kjsm files with metadata. Use to create a library")
var metaInfo: Boolean by FreezableVar(false)
@GradleOption(
value = DefaultValue.JS_ECMA_VERSIONS,
gradleInputType = GradleInputTypes.INPUT
gradleInputType = GradleInputTypes.INPUT,
shouldGenerateDeprecatedKotlinOptions = true,
)
@Argument(value = "-target", valueDescription = "{ v5 }", description = "Generate JS files for specific ECMA version")
var target: String? by NullableStringFreezableVar(null)
@@ -131,7 +140,8 @@ class K2JSCompilerArguments : CommonCompilerArguments() {
@GradleOption(
value = DefaultValue.JS_MODULE_KINDS,
gradleInputType = GradleInputTypes.INPUT
gradleInputType = GradleInputTypes.INPUT,
shouldGenerateDeprecatedKotlinOptions = true,
)
@Argument(
value = "-module-kind",
@@ -142,7 +152,8 @@ class K2JSCompilerArguments : CommonCompilerArguments() {
@GradleOption(
value = DefaultValue.JS_MAIN,
gradleInputType = GradleInputTypes.INPUT
gradleInputType = GradleInputTypes.INPUT,
shouldGenerateDeprecatedKotlinOptions = true,
)
@Argument(
value = "-main",
@@ -282,14 +293,16 @@ class K2JSCompilerArguments : CommonCompilerArguments() {
@GradleOption(
value = DefaultValue.BOOLEAN_TRUE_DEFAULT,
gradleInputType = GradleInputTypes.INPUT
gradleInputType = GradleInputTypes.INPUT,
shouldGenerateDeprecatedKotlinOptions = true,
)
@Argument(value = "-Xtyped-arrays", description = "Translate primitive arrays to JS typed arrays")
var typedArrays: Boolean by FreezableVar(true)
@GradleOption(
value = DefaultValue.BOOLEAN_FALSE_DEFAULT,
gradleInputType = GradleInputTypes.INPUT
gradleInputType = GradleInputTypes.INPUT,
shouldGenerateDeprecatedKotlinOptions = true,
)
@Argument(value = "-Xfriend-modules-disabled", description = "Disable internal declaration export")
var friendModulesDisabled: Boolean by FreezableVar(false)
@@ -15,7 +15,8 @@ class K2JSDceArguments : CommonToolArguments() {
@GradleOption(
value = DefaultValue.STRING_NULL_DEFAULT,
gradleInputType = GradleInputTypes.INTERNAL // handled by 'destinationDirectory'
gradleInputType = GradleInputTypes.INTERNAL, // handled by 'destinationDirectory'
shouldGenerateDeprecatedKotlinOptions = true,
)
@GradleDeprecatedOption(
message = "Use task 'destinationDirectory' to configure output directory",
@@ -44,7 +45,8 @@ class K2JSDceArguments : CommonToolArguments() {
@GradleOption(
value = DefaultValue.BOOLEAN_FALSE_DEFAULT,
gradleInputType = GradleInputTypes.INPUT
gradleInputType = GradleInputTypes.INPUT,
shouldGenerateDeprecatedKotlinOptions = true,
)
@Argument(
value = "-dev-mode",
@@ -38,7 +38,8 @@ class K2JVMCompilerArguments : CommonCompilerArguments() {
@GradleOption(
value = DefaultValue.BOOLEAN_FALSE_DEFAULT,
gradleInputType = GradleInputTypes.INPUT
gradleInputType = GradleInputTypes.INPUT,
shouldGenerateDeprecatedKotlinOptions = true,
)
@Argument(value = "-no-jdk", description = "Don't automatically include the Java runtime into the classpath")
var noJdk: Boolean by FreezableVar(false)
@@ -68,14 +69,16 @@ class K2JVMCompilerArguments : CommonCompilerArguments() {
@GradleOption(
value = DefaultValue.STRING_NULL_DEFAULT,
gradleInputType = GradleInputTypes.INPUT
gradleInputType = GradleInputTypes.INPUT,
shouldGenerateDeprecatedKotlinOptions = true,
)
@Argument(value = "-module-name", valueDescription = "<name>", description = "Name of the generated .kotlin_module file")
var moduleName: String? by NullableStringFreezableVar(null)
@GradleOption(
value = DefaultValue.JVM_TARGET_VERSIONS,
gradleInputType = GradleInputTypes.INPUT
gradleInputType = GradleInputTypes.INPUT,
shouldGenerateDeprecatedKotlinOptions = true,
)
@Argument(
value = "-jvm-target",
@@ -86,7 +89,8 @@ class K2JVMCompilerArguments : CommonCompilerArguments() {
@GradleOption(
value = DefaultValue.BOOLEAN_FALSE_DEFAULT,
gradleInputType = GradleInputTypes.INPUT
gradleInputType = GradleInputTypes.INPUT,
shouldGenerateDeprecatedKotlinOptions = true,
)
@Argument(value = "-java-parameters", description = "Generate metadata for Java 1.8 reflection on method parameters")
var javaParameters: Boolean by FreezableVar(false)