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

cc.catalysts.gradle.plugins.antlr3.Antlr3Plugin.groovy Maven / Gradle / Ivy

The newest version!
package cc.catalysts.gradle.plugins.antlr3

import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.Task
/**
 * @author Catalysts GmbH, www.catalysts.cc
 */
class Antlr3Plugin implements Plugin {
    void apply(Project project) {
        project.apply plugin: 'java'

        project.extensions.antlr3 = new Antlr3Extension()

        project.configurations {
            antlr3
        }

        project.dependencies {
            compile 'org.antlr:antlr-runtime:3.4'
            antlr3 'org.antlr:antlr:3.4'

            testCompile 'junit:junit:4.10'
        }

        project.sourceSets {
            main {
                java {
                    srcDir project.antlr3.destinationDir
                }
            }
        }

        Task clean = project.task("cleanAntlr3", type: CleanAntlr3Task, description: 'Cleans output directory of antlr3',group: "Antlr3")
        project.tasks.getByName('clean').dependsOn(clean)
        Task create = project.task("createAntlr3Out", type: Antlr3OutputDirTask, dependsOn: clean, description: 'Creates output directory of antlr3',group: "Antlr3")
        Task generate = project.task("generateGrammarSource", type: GenerateGrammarSourceTask, dependsOn: create, description: "Generates Java sources from Antlr3 grammars.", group: "Antlr3")
        project.tasks.getByName('compileJava').configure {
            dependsOn generate
            source project.antlr3.destinationDir
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy