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