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

kotlinx.atomicfu.plugin.gradle.AtomicFUGradlePlugin.kt Maven / Gradle / Ivy

There is a newer version: 0.25.0
Show newest version
package kotlinx.atomicfu.plugin.gradle

import kotlinx.atomicfu.transformer.AtomicFUTransformer
import org.gradle.api.DefaultTask
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.file.FileCollection
import org.gradle.api.tasks.Input
import org.gradle.api.tasks.InputFiles
import org.gradle.api.tasks.OutputDirectory
import org.gradle.api.tasks.TaskAction
import java.io.File

open class AtomicFUGradlePlugin : Plugin {
    private val TASK_NAME = "atomicFU"
    override fun apply(target: Project) {
        target.tasks.create(TASK_NAME, AtomicFUTransformTask::class.java)
    }
}

open class AtomicFUTransformTask : DefaultTask() {

    @InputFiles
    lateinit var inputFiles: FileCollection
    @OutputDirectory
    lateinit var outputDir: File
    @InputFiles
    var classPath: FileCollection = project.files()
    @Input
    var verbose: Boolean = false

    @TaskAction
    fun transform() {
        inputFiles.files.forEach {
            val t = AtomicFUTransformer(classPath.files.map { it.absolutePath }, it, outputDir)
            t.verbose = verbose
            t.transform()
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy