From 0a2269cccbe559f4051a99584d0e76efdb2dc893 Mon Sep 17 00:00:00 2001 From: Andrey Uskov Date: Sun, 13 Dec 2020 11:40:46 +0300 Subject: [PATCH] Fixed out-of-process compiler execution if project directy is absent If project directory does not exist and out-of-process execution is used the file with compiler arguments should be created in project directory (if exists) or in temp directory. #KT-43740 Fixed --- .../org/jetbrains/kotlin/compilerRunner/reportUtils.kt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/reportUtils.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/reportUtils.kt index 0a5ea37eeae..db4d36918d6 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/reportUtils.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/reportUtils.kt @@ -126,8 +126,12 @@ internal fun runToolInSeparateProcess( } private fun writeArgumentsToFile(directory: File, argsArray: Array): File { - val compilerOptions = - Files.createTempFile(directory.toPath(), LocalDateTime.now().format(DateTimeFormatter.BASIC_ISO_DATE) + "_", ".compiler.options").toFile() + val prefix = LocalDateTime.now().format(DateTimeFormatter.BASIC_ISO_DATE) + "_" + val suffix = ".compiler.options" + val compilerOptions = if (directory.exists()) + Files.createTempFile(directory.toPath(), prefix, suffix).toFile() + else + Files.createTempFile(prefix, suffix).toFile() compilerOptions.deleteOnExit() compilerOptions.writeText(argsArray.joinToString(" ") { "\"${StringEscapeUtils.escapeJava(it)}\"" }) return compilerOptions