diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/common/utils.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/common/utils.kt index f518fa614e0..a54ec942858 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/common/utils.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/common/utils.kt @@ -23,8 +23,10 @@ import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.isSubpackageOf import org.jetbrains.kotlin.psi.KtFile +import org.jetbrains.kotlin.util.Logger import org.jetbrains.kotlin.utils.KotlinPaths import java.io.File +import kotlin.system.exitProcess fun checkKotlinPackageUsage(environment: KotlinCoreEnvironment, files: Collection): Boolean { if (environment.configuration.getBoolean(CLIConfigurationKeys.ALLOW_KOTLIN_PACKAGE)) { @@ -65,4 +67,24 @@ fun getLibraryFromHome( "or the correct '-kotlin-home'", null ) return null -} \ No newline at end of file +} + +fun MessageCollector.toLogger(): Logger = + object : Logger { + override fun error(message: String) { + report(CompilerMessageSeverity.ERROR, message) + } + + override fun fatal(message: String): Nothing { + report(CompilerMessageSeverity.ERROR, message) + exitProcess(1) + } + + override fun warning(message: String) { + report(CompilerMessageSeverity.WARNING, message) + } + + override fun log(message: String) { + report(CompilerMessageSeverity.LOGGING, message) + } + } \ No newline at end of file diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.kt index eb1ea6cab55..df7ca08e896 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/compiler/KotlinToJVMBytecodeCompiler.kt @@ -43,6 +43,7 @@ import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity.* import org.jetbrains.kotlin.cli.common.messages.MessageCollector import org.jetbrains.kotlin.cli.common.messages.OutputMessageUtil import org.jetbrains.kotlin.cli.common.output.writeAll +import org.jetbrains.kotlin.cli.common.toLogger import org.jetbrains.kotlin.cli.jvm.config.* import org.jetbrains.kotlin.codegen.* import org.jetbrains.kotlin.codegen.state.GenerationState @@ -59,6 +60,7 @@ import org.jetbrains.kotlin.fir.resolve.firProvider import org.jetbrains.kotlin.fir.resolve.impl.FirProviderImpl import org.jetbrains.kotlin.fir.resolve.transformers.FirTotalResolveTransformer import org.jetbrains.kotlin.idea.MainFunctionDetector +import org.jetbrains.kotlin.ir.backend.jvm.jvmResolveLibraries import org.jetbrains.kotlin.ir.backend.jvm.serialization.JvmManglerDesc import org.jetbrains.kotlin.javac.JavacWrapper import org.jetbrains.kotlin.load.kotlin.ModuleVisibilityManager @@ -546,6 +548,10 @@ object KotlinToJVMBytecodeCompiler { val performanceManager = environment.configuration.get(CLIConfigurationKeys.PERF_MANAGER) performanceManager?.notifyAnalysisStarted() + val resolvedKlibs = environment.configuration.get(JVMConfigurationKeys.KLIB_PATHS)?.let { klibPaths -> + jvmResolveLibraries(klibPaths, collector.toLogger()) + }?.getFullList() ?: emptyList() + val analyzerWithCompilerReport = AnalyzerWithCompilerReport(collector, environment.configuration.languageVersionSettings) analyzerWithCompilerReport.analyzeAndReport(sourceFiles) { val project = environment.project @@ -562,7 +568,8 @@ object KotlinToJVMBytecodeCompiler { NoScopeRecordCliBindingTrace(), environment.configuration, environment::createPackagePartProvider, - sourceModuleSearchScope = scope + sourceModuleSearchScope = scope, + klibList = resolvedKlibs ) }