Compile multiplatform projects with daemon

This commit is contained in:
Alexey Tsvetkov
2016-12-18 11:21:36 +03:00
parent d303bdaa0e
commit 69e8cf6a25
7 changed files with 34 additions and 25 deletions
@@ -31,7 +31,8 @@ interface CompileService : Remote {
enum class TargetPlatform : Serializable {
JVM,
JS
JS,
METADATA
}
companion object {
@@ -19,6 +19,7 @@ package org.jetbrains.kotlin.daemon
import org.jetbrains.kotlin.cli.common.CLICompiler
import org.jetbrains.kotlin.cli.js.K2JSCompiler
import org.jetbrains.kotlin.cli.jvm.K2JVMCompiler
import org.jetbrains.kotlin.cli.metadata.K2MetadataCompiler
import org.jetbrains.kotlin.daemon.common.*
import java.io.File
import java.io.IOException
@@ -125,9 +126,11 @@ object KotlinCompileDaemon {
val compilerSelector = object : CompilerSelector {
private val jvm by lazy { K2JVMCompiler() }
private val js by lazy { K2JSCompiler() }
private val metadata by lazy { K2MetadataCompiler() }
override fun get(targetPlatform: CompileService.TargetPlatform): CLICompiler<*> = when (targetPlatform) {
CompileService.TargetPlatform.JVM -> jvm
CompileService.TargetPlatform.JS -> js
CompileService.TargetPlatform.METADATA -> metadata
}
}
// timer with a daemon thread, meaning it should not prevent JVM to exit normally