|
| 1 | +import java.nio.charset.StandardCharsets |
| 2 | + |
1 | 3 | plugins {
|
2 | 4 | id("java")
|
3 | 5 | id("idea")
|
@@ -49,6 +51,8 @@ dependencies {
|
49 | 51 | runtimeOnly("org.slf4j:slf4j-jdk14:${SLF4J_VERSION}")
|
50 | 52 | }
|
51 | 53 |
|
| 54 | +sourceSets { main { java.srcDir("build/generated/sources/version/") } } |
| 55 | + |
52 | 56 | val initializeAtBuildTime =
|
53 | 57 | listOf(
|
54 | 58 | "com.google.common.base.Platform",
|
@@ -143,3 +147,30 @@ graal {
|
143 | 147 | option("--features=io.substrait.isthmus.cli.RegisterAtRuntime")
|
144 | 148 | option("-J--enable-preview")
|
145 | 149 | }
|
| 150 | + |
| 151 | +tasks.register("writeIsthmusVersion") { |
| 152 | + doLast { |
| 153 | + val isthmusVersionClass = |
| 154 | + layout.buildDirectory |
| 155 | + .file("generated/sources/version/io/substrait/isthmus/cli/IsthmusCliVersion.java") |
| 156 | + .get() |
| 157 | + .getAsFile() |
| 158 | + isthmusVersionClass.getParentFile().mkdirs() |
| 159 | + |
| 160 | + isthmusVersionClass.printWriter(StandardCharsets.UTF_8).use { |
| 161 | + it.println("package io.substrait.isthmus.cli;\n") |
| 162 | + it.println("import io.substrait.SubstraitVersion;") |
| 163 | + it.println("import picocli.CommandLine.IVersionProvider;\n") |
| 164 | + it.println("public class IsthmusCliVersion implements IVersionProvider {") |
| 165 | + it.println(" public String[] getVersion() throws Exception {") |
| 166 | + it.println(" return new String[] {") |
| 167 | + it.println(" \"\${COMMAND-NAME} version " + project.version + "\",") |
| 168 | + it.println(" \"Substrait version \" + SubstraitVersion.VERSION,") |
| 169 | + it.println("};") |
| 170 | + it.println(" }") |
| 171 | + it.println("}") |
| 172 | + } |
| 173 | + } |
| 174 | +} |
| 175 | + |
| 176 | +tasks.named("compileJava") { dependsOn("writeIsthmusVersion") } |
0 commit comments