//plugins {
//    id 'antlr'
//}

apply plugin: 'antlr'

sourceSets {
    demo {
        java {
            srcDirs = ["src/demo/kotlin"]
            compileClasspath += main.getCompileClasspath()
            runtimeClasspath += main.getRuntimeClasspath()
        }
    }
    main {
        java {
            srcDir("src/main/java")
            srcDir("src/main/kotlin")
            srcDir("build/generated-src/antlr")
        }
    }
}



generateGrammarSource {
    maxHeapSize = "64m"
    arguments += ["-visitor", "-long-messages"]
    outputDirectory = file("${project.buildDir}/generated-src/antlr/org/openrndr/extra/keyframer/antlr".toString())

}

dependencies {
    antlr("org.antlr:antlr4:$antlrVersion")
    implementation("org.antlr:antlr4-runtime:$antlrVersion")
    implementation(project(":orx-noise"))
    implementation(project(":orx-easing"))
    implementation "com.google.code.gson:gson:$gsonVersion"
    implementation("org.jetbrains.kotlin:kotlin-reflect:$kotlinVersion")

    demoImplementation(project(":orx-camera"))

    demoImplementation(project(":orx-jvm:orx-panel"))
    demoImplementation("org.openrndr:openrndr-application:$openrndrVersion")
    demoImplementation("org.openrndr:openrndr-extensions:$openrndrVersion")
    demoRuntimeOnly("org.openrndr:openrndr-gl3:$openrndrVersion")
    demoRuntimeOnly("org.openrndr:openrndr-gl3-natives-$openrndrOS:$openrndrVersion")
    demoImplementation(sourceSets.getByName("main").output)
}

tasks.getByName("compileKotlin").dependsOn("generateGrammarSource")
tasks.getByName("compileTestKotlin").dependsOn("generateTestGrammarSource")