diff --git a/build-tools/src/main/kotlin/org/jetbrains/kotlin/CompilationDatabase.kt b/build-tools/src/main/kotlin/org/jetbrains/kotlin/CompilationDatabase.kt index 2d44dc00277..9b3bf11e066 100644 --- a/build-tools/src/main/kotlin/org/jetbrains/kotlin/CompilationDatabase.kt +++ b/build-tools/src/main/kotlin/org/jetbrains/kotlin/CompilationDatabase.kt @@ -7,11 +7,8 @@ package org.jetbrains.kotlin import java.io.File import javax.inject.Inject -import kotlinx.serialization.Serializable -import kotlinx.serialization.builtins.list -import kotlinx.serialization.json.Json -import kotlinx.serialization.json.JsonConfiguration import org.gradle.api.GradleException +import com.google.gson.annotations.Expose import org.gradle.api.Project import org.gradle.api.Task import org.gradle.api.DefaultTask @@ -20,13 +17,14 @@ import org.gradle.api.tasks.InputFiles import org.gradle.api.tasks.OutputFile import org.gradle.api.tasks.TaskAction import org.jetbrains.kotlin.konan.target.HostManager +import java.io.FileReader +import java.io.FileWriter -@Serializable -private data class Entry( - val directory: String, - val file: String, - val arguments: List, - val output: String +internal data class Entry( + @Expose val directory: String, + @Expose val file: String, + @Expose val arguments: List, + @Expose val output: String ) { companion object { fun create( @@ -43,14 +41,12 @@ private data class Entry( ) } - fun writeListTo(file: File, entries: List) { - val json = Json(JsonConfiguration.Stable.copy(prettyPrint = true)) - file.writeText(json.stringify(Entry.serializer().list, entries)) + fun writeListTo(file: File, entries: List) = FileWriter(file).use { + gson.toJson(entries, it) } - fun readListFrom(file: File): List { - val json = Json(JsonConfiguration.Stable) - return json.parse(Entry.serializer().list, file.readText()) + fun readListFrom(file: File): Array = FileReader(file).use{ + gson.fromJson(it, Array::class.java) } } }