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:
Ilya Gorbunov
2018-10-01 21:50:59 +03:00
parent b55b0c1ff1
commit 2c313e12e5
+22 -8
View File
@@ -1,6 +1,10 @@
import org.gradle.jvm.tasks.Jar import org.gradle.jvm.tasks.Jar
import java.io.File import java.io.File
plugins {
base
}
val builtinsSrc = fileFrom(rootDir, "core", "builtins", "src") val builtinsSrc = fileFrom(rootDir, "core", "builtins", "src")
val builtinsNative = fileFrom(rootDir, "core", "builtins", "native") val builtinsNative = fileFrom(rootDir, "core", "builtins", "native")
// TODO: rewrite dependent projects on using build results instead of the fixed location // 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 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 outDir = builtinsSerialized
val inDirs = arrayOf(builtinsSrc, builtinsNative) val inDirs = arrayOf(builtinsSrc, builtinsNative)
inDirs.forEach { inputs.dir(it) }
outputs.dir(outDir) outputs.dir(outDir)
inputs.files(*inDirs)
commandLine( classpath(rootProject.buildscript.configurations["bootstrapCompilerClasspath"])
"java", "-cp", main = "org.jetbrains.kotlin.serialization.builtins.RunKt"
rootProject.buildscript.configurations["bootstrapCompilerClasspath"].asPath, jvmArgs("-Didea.io.use.nio2=true")
"org.jetbrains.kotlin.serialization.builtins.RunKt", args(outDir, *inDirs)
"$outDir", *inDirs
)
} }
val builtinsJar by task<Jar> { val builtinsJar by task<Jar> {
@@ -28,4 +37,9 @@ val builtinsJar by task<Jar> {
destinationDir = File(buildDir, "libs") destinationDir = File(buildDir, "libs")
} }
val assemble by tasks.getting {
dependsOn(serialize)
}
artifacts.add(builtins.name, builtinsJar) artifacts.add(builtins.name, builtinsJar)