Don't use exitProcess to indicate a failure in Native library resolver
If Native compiler performs exitProcess, it crashes Gradle daemon that runs the compiler.
This commit is contained in:
committed by
Space
parent
f1cdd0e2ed
commit
df77cd303f
@@ -61,7 +61,6 @@ class K2Native : CLICompiler<K2NativeCompilerArguments>() {
|
|||||||
val project = environment.project
|
val project = environment.project
|
||||||
val messageCollector = configuration.get(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY) ?: MessageCollector.NONE
|
val messageCollector = configuration.get(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY) ?: MessageCollector.NONE
|
||||||
configuration.put(CLIConfigurationKeys.PHASE_CONFIG, createPhaseConfig(toplevelPhase, arguments, messageCollector))
|
configuration.put(CLIConfigurationKeys.PHASE_CONFIG, createPhaseConfig(toplevelPhase, arguments, messageCollector))
|
||||||
val konanConfig = KonanConfig(project, configuration)
|
|
||||||
|
|
||||||
val enoughArguments = arguments.freeArgs.isNotEmpty() || arguments.isUsefulWithoutFreeArgs
|
val enoughArguments = arguments.freeArgs.isNotEmpty() || arguments.isUsefulWithoutFreeArgs
|
||||||
if (!enoughArguments) {
|
if (!enoughArguments) {
|
||||||
@@ -75,6 +74,7 @@ class K2Native : CLICompiler<K2NativeCompilerArguments>() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
val konanConfig = KonanConfig(project, configuration)
|
||||||
runTopLevelPhases(konanConfig, environment)
|
runTopLevelPhases(konanConfig, environment)
|
||||||
} catch (e: KonanCompilationException) {
|
} catch (e: KonanCompilationException) {
|
||||||
return ExitCode.COMPILATION_ERROR
|
return ExitCode.COMPILATION_ERROR
|
||||||
|
|||||||
+1
-4
@@ -7,7 +7,6 @@ package org.jetbrains.kotlin.backend.konan
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys
|
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys
|
||||||
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
|
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
|
||||||
import org.jetbrains.kotlin.cli.common.messages.GroupingMessageCollector
|
|
||||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||||
import org.jetbrains.kotlin.konan.CompilerVersion
|
import org.jetbrains.kotlin.konan.CompilerVersion
|
||||||
import org.jetbrains.kotlin.konan.file.File
|
import org.jetbrains.kotlin.konan.file.File
|
||||||
@@ -19,7 +18,6 @@ import org.jetbrains.kotlin.library.UnresolvedLibrary
|
|||||||
import org.jetbrains.kotlin.library.resolver.impl.libraryResolver
|
import org.jetbrains.kotlin.library.resolver.impl.libraryResolver
|
||||||
import org.jetbrains.kotlin.library.toUnresolvedLibraries
|
import org.jetbrains.kotlin.library.toUnresolvedLibraries
|
||||||
import org.jetbrains.kotlin.util.Logger
|
import org.jetbrains.kotlin.util.Logger
|
||||||
import kotlin.system.exitProcess
|
|
||||||
|
|
||||||
class KonanLibrariesResolveSupport(
|
class KonanLibrariesResolveSupport(
|
||||||
configuration: CompilerConfiguration,
|
configuration: CompilerConfiguration,
|
||||||
@@ -48,8 +46,7 @@ class KonanLibrariesResolveSupport(
|
|||||||
override fun log(message: String) = collector.report(CompilerMessageSeverity.LOGGING, message)
|
override fun log(message: String) = collector.report(CompilerMessageSeverity.LOGGING, message)
|
||||||
override fun fatal(message: String): Nothing {
|
override fun fatal(message: String): Nothing {
|
||||||
collector.report(CompilerMessageSeverity.ERROR, message)
|
collector.report(CompilerMessageSeverity.ERROR, message)
|
||||||
(collector as? GroupingMessageCollector)?.flush()
|
throw KonanCompilationException()
|
||||||
exitProcess(1)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user