// DO NOT EDIT MANUALLY!
// Generated by org/jetbrains/kotlin/generators/arguments/GenerateGradleOptions.kt
// To regenerate run 'generateGradleOptions' task
@file:Suppress("RemoveRedundantQualifierName", "Deprecation", "Deprecation_Error", "DuplicatedCode")

package org.jetbrains.kotlin.gradle.dsl

/**
 * Compiler options for Kotlin/JVM.
 */
interface KotlinJvmCompilerOptions : org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptions {

    /**
     * Generate metadata for Java 1.8 reflection on method parameters.
     *
     * Default value: false
     */
    @get:org.gradle.api.tasks.Input
    val javaParameters: org.gradle.api.provider.Property<kotlin.Boolean>

    /**
     * Emit JVM default methods for interface declarations with bodies. The default is 'enable'.
     * * `-jvm-default=enable`              Generate default methods for non-abstract interface declarations, as well as 'DefaultImpls' classes with
     *                                  static methods for compatibility with code compiled in the 'disable' mode.
     *                                  This is the default behavior since language version 2.2.
     * * `-jvm-default=no-compatibility`    Generate default methods for non-abstract interface declarations. Do not generate 'DefaultImpls' classes.
     * * `-jvm-default=disable`             Do not generate JVM default methods. This is the default behavior up to language version 2.1.
     *
     * Possible values: "disable", "enable", "no-compatibility"
     *
     * Default value: null
     */
    @get:org.gradle.api.tasks.Optional
    @get:org.gradle.api.tasks.Input
    val jvmDefault: org.gradle.api.provider.Property<org.jetbrains.kotlin.gradle.dsl.JvmDefaultMode>

    /**
     * The target version of the generated JVM bytecode (1.8 and 9–24), with 1.8 as the default.
     *
     * Possible values: "1.8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24"
     *
     * Default value: JvmTarget.DEFAULT
     */
    @get:org.gradle.api.tasks.Input
    val jvmTarget: org.gradle.api.provider.Property<org.jetbrains.kotlin.gradle.dsl.JvmTarget>

    /**
     * Name of the generated '.kotlin_module' file.
     *
     * Default value: null
     */
    @get:org.gradle.api.tasks.Optional
    @get:org.gradle.api.tasks.Input
    val moduleName: org.gradle.api.provider.Property<kotlin.String>

    /**
     * Don't automatically include the Java runtime in the classpath.
     *
     * Default value: false
     */
    @get:org.gradle.api.tasks.Input
    val noJdk: org.gradle.api.provider.Property<kotlin.Boolean>
}
