diff --git a/core/builtins/build.gradle.kts b/core/builtins/build.gradle.kts index 45ce4808a06..26c9104b016 100644 --- a/core/builtins/build.gradle.kts +++ b/core/builtins/build.gradle.kts @@ -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("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 { @@ -28,4 +37,9 @@ val builtinsJar by task { destinationDir = File(buildDir, "libs") } + +val assemble by tasks.getting { + dependsOn(serialize) +} + artifacts.add(builtins.name, builtinsJar)