[JS IR] Support additional repositories in CLI (compiler part)
This commit is contained in:
@@ -134,7 +134,7 @@ fun main(args: Array<String>) {
|
||||
}
|
||||
|
||||
val resolvedLibraries = jsResolveLibraries(
|
||||
dependencies, messageCollectorLogger(MessageCollector.NONE)
|
||||
dependencies, emptyList(), messageCollectorLogger(MessageCollector.NONE)
|
||||
)
|
||||
|
||||
buildKLib(moduleName, listOfKtFilesFrom(inputFiles), outputPath, resolvedLibraries, listOfKtFilesFrom(commonSources))
|
||||
|
||||
@@ -175,6 +175,7 @@ class K2JsIrCompiler : CLICompiler<K2JSCompilerArguments>() {
|
||||
|
||||
val resolvedLibraries = jsResolveLibraries(
|
||||
libraries,
|
||||
configuration[JSConfigurationKeys.REPOSITORIES] ?: emptyList(),
|
||||
messageCollectorLogger(configuration[CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY] ?: error("Could not find message collector"))
|
||||
)
|
||||
|
||||
|
||||
+2
-2
@@ -37,12 +37,12 @@ class JsLibraryResolver(
|
||||
}
|
||||
|
||||
// TODO: This is a temporary set of library resolver policies for js compiler.
|
||||
fun jsResolveLibraries(libraries: List<String>, logger: Logger): KotlinLibraryResolveResult {
|
||||
fun jsResolveLibraries(libraries: List<String>, repositories: Collection<String>, logger: Logger): KotlinLibraryResolveResult {
|
||||
val unresolvedLibraries = libraries.map { UnresolvedLibrary(it, null) }
|
||||
val libraryAbsolutePaths = libraries.map { File(it).absolutePath }
|
||||
// Configure the resolver to only work with absolute paths for now.
|
||||
val libraryResolver = JsLibraryResolver(
|
||||
repositories = emptyList(),
|
||||
repositories = repositories.toList(),
|
||||
directLibs = libraryAbsolutePaths,
|
||||
distributionKlib = null,
|
||||
localKotlinDir = null,
|
||||
|
||||
@@ -12,6 +12,7 @@ import org.jetbrains.kotlin.incremental.js.IncrementalResultsConsumer;
|
||||
import org.jetbrains.kotlin.serialization.js.ModuleKind;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -89,4 +90,7 @@ public class JSConfigurationKeys {
|
||||
|
||||
public static final CompilerConfigurationKey<ErrorTolerancePolicy> ERROR_TOLERANCE_POLICY =
|
||||
CompilerConfigurationKey.create("set up policy to ignore compilation errors");
|
||||
|
||||
public static final CompilerConfigurationKey<Collection<String>> REPOSITORIES =
|
||||
CompilerConfigurationKey.create("set up additional repository paths");
|
||||
}
|
||||
|
||||
@@ -72,7 +72,7 @@ class ApiTest : KotlinTestWithEnvironment() {
|
||||
val fullRuntimeKlib: String = System.getProperty("kotlin.js.full.stdlib.path")
|
||||
|
||||
val resolvedLibraries =
|
||||
jsResolveLibraries(listOf(File(fullRuntimeKlib).absolutePath), messageCollectorLogger(MessageCollector.NONE))
|
||||
jsResolveLibraries(listOf(File(fullRuntimeKlib).absolutePath), emptyList(), messageCollectorLogger(MessageCollector.NONE))
|
||||
|
||||
val project = environment.project
|
||||
val configuration = environment.configuration
|
||||
|
||||
@@ -103,7 +103,7 @@ abstract class BasicIrBoxTest(
|
||||
compilationCache[it] ?: error("Can't find compiled module for dependency $it")
|
||||
}).map { File(it).absolutePath }
|
||||
|
||||
val resolvedLibraries = jsResolveLibraries(allKlibPaths, messageCollectorLogger(MessageCollector.NONE))
|
||||
val resolvedLibraries = jsResolveLibraries(allKlibPaths, emptyList(), messageCollectorLogger(MessageCollector.NONE))
|
||||
|
||||
val actualOutputFile = outputFile.absolutePath.let {
|
||||
if (!isMainModule) it.replace("_v5.js", "/") else it
|
||||
|
||||
+1
@@ -116,6 +116,7 @@ fun readLibrariesFromConfiguration(configuration: CompilerConfiguration): List<M
|
||||
val libraries = scriptDependencies.map { (it as JsDependency).path }
|
||||
val resolvedLibraries = jsResolveLibraries(
|
||||
libraries,
|
||||
emptyList(),
|
||||
object : Logger {
|
||||
private val collector = configuration[CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY] ?: MessageCollector.NONE
|
||||
override fun warning(message: String) = collector.report(CompilerMessageSeverity.STRONG_WARNING, message)
|
||||
|
||||
Reference in New Issue
Block a user