name.remal.gradle_plugins.dsl.extensions.org.gradle.api.tasks.compile.GroovyCompileOptions.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of gradle-plugins-kotlin-dsl Show documentation
Show all versions of gradle-plugins-kotlin-dsl Show documentation
Remal Gradle plugins: gradle-plugins-kotlin-dsl
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)
}
}