All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jetbrains.kotlin.cli.common.arguments.CommonToolArguments.kt Maven / Gradle / Ivy

There is a newer version: 2.0.20-RC
Show newest version
/*
 * Copyright 2010-2017 JetBrains s.r.o.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.jetbrains.kotlin.cli.common.arguments

import java.io.Serializable

abstract class CommonToolArguments : Freezable(), Serializable {
    companion object {
        @JvmStatic
        private val serialVersionUID = 0L
    }

    var freeArgs: List = emptyList()
        set(value) {
            checkFrozen()
            field = value
        }

    @Transient
    var errors: ArgumentParseErrors? = null

    @Argument(value = "-help", shortName = "-h", description = "Print a synopsis of standard options")
    var help = false
        set(value) {
            checkFrozen()
            field = value
        }

    @Argument(value = "-X", description = "Print a synopsis of advanced options")
    var extraHelp = false
        set(value) {
            checkFrozen()
            field = value
        }

    @Argument(value = "-version", description = "Display compiler version")
    var version = false
        set(value) {
            checkFrozen()
            field = value
        }

    @GradleOption(
        value = DefaultValue.BOOLEAN_FALSE_DEFAULT,
        gradleInputType = GradleInputTypes.INTERNAL,
        shouldGenerateDeprecatedKotlinOptions = true,
    )
    @Argument(value = "-verbose", description = "Enable verbose logging output")
    var verbose = false
        set(value) {
            checkFrozen()
            field = value
        }

    @GradleOption(
        value = DefaultValue.BOOLEAN_FALSE_DEFAULT,
        gradleInputType = GradleInputTypes.INTERNAL,
        shouldGenerateDeprecatedKotlinOptions = true,
    )
    @Argument(value = "-nowarn", description = "Generate no warnings")
    var suppressWarnings = false
        set(value) {
            checkFrozen()
            field = value
        }

    @GradleOption(
        value = DefaultValue.BOOLEAN_FALSE_DEFAULT,
        gradleInputType = GradleInputTypes.INPUT,
        shouldGenerateDeprecatedKotlinOptions = true,
    )
    @Argument(value = "-Werror", description = "Report an error if there are any warnings")
    var allWarningsAsErrors = false
        set(value) {
            checkFrozen()
            field = value
        }

    var internalArguments: List = emptyList()
        set(value) {
            checkFrozen()
            field = value
        }

    // This is a hack to workaround an issue that incremental compilation does not recompile CLI arguments classes after the change in
    // the previous commit. This method can be removed after some time.
    override fun equals(other: Any?): Boolean = super.equals(other)
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy