riiablo/tools/bin-generator/build.gradle
2020-11-29 17:58:51 -08:00

71 lines
1.6 KiB
Groovy

description = 'Generates bin files for D2 excel tables.'
application.mainClass = 'com.riiablo.excel.BinGeneratorTool'
class GenerateBinsTask extends DefaultTask {
@Input
String txtPackage
@Input
String binPackage
@TaskAction
def generateBins() {
println txtPackage
println binPackage
}
}
task testme(type: GenerateBinsTask) {
txtPackage = 'com.riiablo.excel.txt'
binPackage = 'com.riiablo.excel.bin'
}
project.ext {
srcProjectDir = project(':core').sourceSets.main.java.srcDirs.first()
genProjectDir = project(':core').generatedSourceDirs
excelPackage = 'com.riiablo.excel'
txtPackage = "${excelPackage}.txt"
binPackage = "${excelPackage}.bin"
}
task cleanAndGenerateBins {
group 'bin-generator'
description 'cleanBins + generateBins'
dependsOn 'cleanBins'
dependsOn 'generateBins'
}
task generateBins(type: JavaExec) {
group 'bin-generator'
description 'generates bins for ' + project(':core')
mainClass = application.mainClass
classpath = sourceSets.main.runtimeClasspath
args = [
"--src=$srcProjectDir",
"--gen=$genProjectDir",
"--txt-package=$txtPackage",
"--bin-package=$binPackage",
]
}
task cleanBins(type: Delete) {
group 'bin-generator'
description 'cleans generated bins for ' + project(':core')
dependsOn 'listBins'
delete fileTree(genProjectDir).matching {
include binPackage.replace('.', '/') + '/*Bin.java'
}
}
task listBins {
group 'bin-generator'
description 'lists generated bins for ' + project(':core')
doLast {
fileTree(genProjectDir) {
include binPackage.replace('.', '/') + '/*Bin.java'
}.each {
println it
}
}
}