tools/sql_extraction/build.gradle.kts (86 lines of code) (raw):
plugins {
application
antlr
kotlin("jvm") version "1.3.72"
id("de.undercouch.download") version "4.0.4"
}
group = "com.google.cloud.sqlecosystem"
version = "1.0"
// clean task = clean
// build task = build
// build and run task = run
// test task = test
application {
mainClassName = "com.google.cloud.sqlecosystem.sqlextraction.CliKt"
}
repositories {
mavenCentral()
}
dependencies {
implementation(kotlin("stdlib-jdk8"))
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.8")
implementation("io.github.microutils:kotlin-logging:1.7.9")
implementation("org.slf4j:slf4j-simple:1.7.29")
antlr("org.antlr:antlr4:4.7.2")
implementation("org.antlr:antlr4-runtime:4.7.2")
implementation("com.github.ajalt:clikt:2.7.1")
implementation("com.google.code.gson:gson:2.8.5")
testImplementation(kotlin("test"))
testImplementation(kotlin("test-junit"))
testImplementation("org.junit.jupiter:junit-jupiter:5.6.2")
testImplementation("com.google.jimfs:jimfs:1.1")
testImplementation("io.mockk:mockk:1.10.0")
}
task<de.undercouch.gradle.tasks.download.Download>("downloadGrammars") {
doFirst {
mkdir("gen/main/antlr")
mkdir("src/main/antlr")
}
src(
listOf(
"https://raw.githubusercontent.com/antlr/grammars-v4/master/java/java9/Java9.g4",
"https://raw.githubusercontent.com/antlr/grammars-v4/master/python/python3/Python3.g4"
)
)
dest("gen/main/antlr/")
overwrite(false) // no need to download a copy every time
println(System.getProperty("user.dir"))
}
tasks {
generateGrammarSource {
dependsOn("downloadGrammars")
arguments = arguments + listOf(
"-package", "com.google.cloud.sqlecosystem.sqlextraction.antlr",
"-visitor",
"-no-listener"
)
include("*.g4")
source("gen/main/antlr")
outputDirectory = File("gen/main/antlr")
doLast {
mkdir("gen/main/java/com/google/cloud/sqlecosystem/sqlextraction/antlr")
copy {
from("gen/main/antlr/") {
include("*.java")
}
into("gen/main/java/com/google/cloud/sqlecosystem/sqlextraction/antlr/")
}
}
}
compileKotlin {
dependsOn(generateGrammarSource)
kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
dependsOn(generateTestGrammarSource)
kotlinOptions.jvmTarget = "1.8"
}
clean {
doFirst {
delete("gen")
}
}
}
sourceSets {
main {
java {
srcDirs("gen/main/java")
}
}
}