From be92c5e7879977773816eaf1a771ac2d40607623 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Fri, 16 Nov 2018 17:14:17 +0300 Subject: [PATCH] Return back to using Exec task instead of JavaExec for serializing builtins Idea patches all JavaExec tasks and enables debugger for them. This causes unexpected breakpoints stops during serialization (IDEA-200192). An attempt with explicit removing added agentlib:jdwp= parameter breaks Gradle up-to-date check for this task: > Task ':core:builtins:serialize' is not up-to-date because: > Value of input property 'jvmArgs' has changed for task ':core:builtins:serialize' Co-authored-by: Ilya Gorbunov --- core/builtins/build.gradle.kts | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/core/builtins/build.gradle.kts b/core/builtins/build.gradle.kts index bb9b9cbf3f8..01d4324dfc5 100644 --- a/core/builtins/build.gradle.kts +++ b/core/builtins/build.gradle.kts @@ -18,21 +18,23 @@ val clean by tasks.getting { } } -val serialize by tasks.creating(JavaExec::class) { +val JDK_18: String = rootProject.extra["JDK_18"] as String + +// We avoid using JavaExec task here due to IDEA-200192: +// IDEA attaches debugger to all JavaExec tasks making our breakpoints trigger during irrelevant task execution +val serialize by tasks.creating(Exec::class) { val outDir = builtinsSerialized val inDirs = arrayOf(builtinsSrc, builtinsNative) inDirs.forEach { inputs.dir(it) } outputs.dir(outDir) - classpath(rootProject.buildscript.configurations["bootstrapCompilerClasspath"]) - main = "org.jetbrains.kotlin.serialization.builtins.RunKt" - - doFirst { - // Reassign to remove debugger options. Workaround for IDEA-200192. - jvmArgs = listOf("-Didea.io.use.nio2=true") - } - - args(outDir, *inDirs) + commandLine( + "$JDK_18/bin/java", + "-Didea.io.use.nio2=true", + "-cp", rootProject.buildscript.configurations["bootstrapCompilerClasspath"].asPath, + "org.jetbrains.kotlin.serialization.builtins.RunKt", + outDir, *inDirs + ) } val builtinsJar by task {