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.AbstractCompile.kt Maven / Gradle / Ivy

package name.remal.gradle_plugins.dsl.extensions

import name.remal.debug
import name.remal.gradle_plugins.dsl.utils.getGradleLogger
import org.gradle.api.JavaVersion
import org.gradle.api.file.FileVisitDetails
import org.gradle.api.tasks.SourceSet
import org.gradle.api.tasks.compile.AbstractCompile

val AbstractCompile.sourceJavaVersion: JavaVersion get() = sourceCompatibility?.let(JavaVersion::toVersion) ?: JavaVersion.current()
val AbstractCompile.targetJavaVersion: JavaVersion get() = targetCompatibility?.let(JavaVersion::toVersion) ?: JavaVersion.current()

val AbstractCompile.isJava5Compatible: Boolean get() = targetJavaVersion.isJava5Compatible
val AbstractCompile.isJava6Compatible: Boolean get() = targetJavaVersion.isJava6Compatible
val AbstractCompile.isJava7Compatible: Boolean get() = targetJavaVersion.isJava7Compatible
val AbstractCompile.isJava8Compatible: Boolean get() = targetJavaVersion.isJava8Compatible
val AbstractCompile.isJava9Compatible: Boolean get() = targetJavaVersion.isJava9Compatible
val AbstractCompile.isJava10Compatible: Boolean get() = targetJavaVersion.isJava10Compatible
val AbstractCompile.isJava11Compatible: Boolean get() = targetJavaVersion.isJava11Compatible


fun AbstractCompile.isCompilingSourceSet(sourceSet: SourceSet): Boolean {
    val destinationDir = try {
        this.destinationDir ?: return false
    } catch (e: UninitializedPropertyAccessException) {
        getGradleLogger(javaClass).debug(e)
        return false
    }
    val absoluteDestinationDir = destinationDir.absoluteFile
    return sourceSet.output.classesDirs.any { it.absoluteFile == absoluteDestinationDir }
}

fun AbstractCompile.forEachCreatedClassFile(action: (fileVisitDetails: FileVisitDetails) -> Unit) {
    val destinationDir = try {
        this.destinationDir ?: return
    } catch (e: UninitializedPropertyAccessException) {
        getGradleLogger(javaClass).debug(e)
        return
    }
    project.fileTree(destinationDir).visitFiles {
        if (it.name.endsWith(".class") && it.isFile) {
            action(it)
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy