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

name.remal.gradle_plugins.dsl.extensions.org.gradle.api.tasks.compile.GroovyCompileOptions.kt Maven / Gradle / Ivy

There is a newer version: 1.9.2
Show newest version
package name.remal.gradle_plugins.dsl.extensions

import name.remal.gradle_plugins.dsl.utils.getGradleGroovyVersion
import name.remal.uncheckedCast
import name.remal.version.Version
import org.gradle.api.tasks.compile.GroovyCompileOptions
import java.lang.reflect.Method

private val parametersMinGroovyVersion = Version.create(2, 5)
private val parametersGetter: Method? by lazy {
    GroovyCompileOptions::class.java.findCompatibleMethod(Boolean::class.java, "isParameters")
        ?.apply { isAccessible = true }
}
private val parametersSetter: Method? by lazy {
    GroovyCompileOptions::class.java.findCompatibleMethod("setParameters", Boolean::class.java)
        ?.apply { isAccessible = true }
}

var GroovyCompileOptions.parameters: Boolean?
    get() {
        if (getGradleGroovyVersion() >= parametersMinGroovyVersion) {
            parametersGetter?.let {
                return it.invoke(this).uncheckedCast()
            }
        }
        return null
    }
    set(value) {
        if (getGradleGroovyVersion() >= parametersMinGroovyVersion) {
            parametersSetter?.invoke(this, value)
        }
    }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy