diff --git a/compiler/cli/cli-js-klib/src/GenerateJsIrKlib.kt b/compiler/cli/cli-js-klib/src/GenerateJsIrKlib.kt index b174de5c487..44586cd43cc 100644 --- a/compiler/cli/cli-js-klib/src/GenerateJsIrKlib.kt +++ b/compiler/cli/cli-js-klib/src/GenerateJsIrKlib.kt @@ -134,7 +134,7 @@ fun main(args: Array) { } val resolvedLibraries = jsResolveLibraries( - dependencies, messageCollectorLogger(MessageCollector.NONE) + dependencies, emptyList(), messageCollectorLogger(MessageCollector.NONE) ) buildKLib(moduleName, listOfKtFilesFrom(inputFiles), outputPath, resolvedLibraries, listOfKtFilesFrom(commonSources)) diff --git a/compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/K2JsIrCompiler.kt b/compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/K2JsIrCompiler.kt index efa64a745a8..ac0653c9598 100644 --- a/compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/K2JsIrCompiler.kt +++ b/compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/K2JsIrCompiler.kt @@ -175,6 +175,7 @@ class K2JsIrCompiler : CLICompiler() { val resolvedLibraries = jsResolveLibraries( libraries, + configuration[JSConfigurationKeys.REPOSITORIES] ?: emptyList(), messageCollectorLogger(configuration[CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY] ?: error("Could not find message collector")) ) diff --git a/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/JsLibraryResolver.kt b/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/JsLibraryResolver.kt index 1368ba7afc5..dc7e6453985 100644 --- a/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/JsLibraryResolver.kt +++ b/compiler/ir/serialization.js/src/org/jetbrains/kotlin/ir/backend/js/JsLibraryResolver.kt @@ -37,12 +37,12 @@ class JsLibraryResolver( } // TODO: This is a temporary set of library resolver policies for js compiler. -fun jsResolveLibraries(libraries: List, logger: Logger): KotlinLibraryResolveResult { +fun jsResolveLibraries(libraries: List, repositories: Collection, 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, diff --git a/js/js.frontend/src/org/jetbrains/kotlin/js/config/JSConfigurationKeys.java b/js/js.frontend/src/org/jetbrains/kotlin/js/config/JSConfigurationKeys.java index 71a1ce9b29f..b127f71d639 100644 --- a/js/js.frontend/src/org/jetbrains/kotlin/js/config/JSConfigurationKeys.java +++ b/js/js.frontend/src/org/jetbrains/kotlin/js/config/JSConfigurationKeys.java @@ -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 ERROR_TOLERANCE_POLICY = CompilerConfigurationKey.create("set up policy to ignore compilation errors"); + + public static final CompilerConfigurationKey> REPOSITORIES = + CompilerConfigurationKey.create("set up additional repository paths"); } diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/ApiTest.kt b/js/js.tests/test/org/jetbrains/kotlin/js/test/ApiTest.kt index 05e549345f1..d1c09c1cdc0 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/ApiTest.kt +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/ApiTest.kt @@ -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 diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicIrBoxTest.kt b/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicIrBoxTest.kt index 60d59d49240..78e2f0ee109 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicIrBoxTest.kt +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicIrBoxTest.kt @@ -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 diff --git a/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/repl/js/JsReplUtils.kt b/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/repl/js/JsReplUtils.kt index fb73899385c..494da8dae31 100644 --- a/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/repl/js/JsReplUtils.kt +++ b/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/repl/js/JsReplUtils.kt @@ -116,6 +116,7 @@ fun readLibrariesFromConfiguration(configuration: CompilerConfiguration): List