Rewrite builtin serialization task as JavaExec
Add standard clean, assemble, build tasks by applying base plugin. Clean outputs in dist/builtins on clean.
This commit is contained in:
@@ -1,6 +1,10 @@
|
||||
import org.gradle.jvm.tasks.Jar
|
||||
import java.io.File
|
||||
|
||||
plugins {
|
||||
base
|
||||
}
|
||||
|
||||
val builtinsSrc = fileFrom(rootDir, "core", "builtins", "src")
|
||||
val builtinsNative = fileFrom(rootDir, "core", "builtins", "native")
|
||||
// TODO: rewrite dependent projects on using build results instead of the fixed location
|
||||
@@ -8,17 +12,22 @@ val builtinsSerialized = File(rootProject.extra["distDir"].toString(), "builtins
|
||||
|
||||
val builtins by configurations.creating
|
||||
|
||||
val serialize = task<Exec>("serialize") {
|
||||
val clean by tasks.getting {
|
||||
doLast {
|
||||
delete(builtinsSerialized)
|
||||
}
|
||||
}
|
||||
|
||||
val serialize by tasks.creating(JavaExec::class) {
|
||||
val outDir = builtinsSerialized
|
||||
val inDirs = arrayOf(builtinsSrc, builtinsNative)
|
||||
inDirs.forEach { inputs.dir(it) }
|
||||
outputs.dir(outDir)
|
||||
inputs.files(*inDirs)
|
||||
commandLine(
|
||||
"java", "-cp",
|
||||
rootProject.buildscript.configurations["bootstrapCompilerClasspath"].asPath,
|
||||
"org.jetbrains.kotlin.serialization.builtins.RunKt",
|
||||
"$outDir", *inDirs
|
||||
)
|
||||
|
||||
classpath(rootProject.buildscript.configurations["bootstrapCompilerClasspath"])
|
||||
main = "org.jetbrains.kotlin.serialization.builtins.RunKt"
|
||||
jvmArgs("-Didea.io.use.nio2=true")
|
||||
args(outDir, *inDirs)
|
||||
}
|
||||
|
||||
val builtinsJar by task<Jar> {
|
||||
@@ -28,4 +37,9 @@ val builtinsJar by task<Jar> {
|
||||
destinationDir = File(buildDir, "libs")
|
||||
}
|
||||
|
||||
|
||||
val assemble by tasks.getting {
|
||||
dependsOn(serialize)
|
||||
}
|
||||
|
||||
artifacts.add(builtins.name, builtinsJar)
|
||||
|
||||
Reference in New Issue
Block a user