-
Notifications
You must be signed in to change notification settings - Fork 456
Fix setup js deps #2258
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix setup js deps #2258
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -30,6 +30,7 @@ import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys | |
import org.jetbrains.kotlin.cli.common.config.ContentRoot | ||
import org.jetbrains.kotlin.cli.common.config.KotlinSourceRoot | ||
import org.jetbrains.kotlin.cli.common.config.addKotlinSourceRoot | ||
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity | ||
import org.jetbrains.kotlin.cli.common.messages.MessageCollector | ||
import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles | ||
import org.jetbrains.kotlin.cli.jvm.compiler.JvmPackagePartProvider | ||
|
@@ -74,7 +75,7 @@ import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatformAnalyzerServices | |
import org.jetbrains.kotlin.resolve.konan.platform.NativePlatformAnalyzerServices | ||
import java.io.File | ||
import org.jetbrains.kotlin.konan.file.File as KFile | ||
|
||
import org.jetbrains.kotlin.library.KLIB_FILE_EXTENSION | ||
|
||
const val JAR_SEPARATOR = "!/" | ||
|
||
|
@@ -289,23 +290,32 @@ class AnalysisEnvironment(val messageCollector: MessageCollector, val analysisPl | |
val analyzerServices = analysisPlatform.analyzerServices() | ||
|
||
return buildMap { | ||
classpath.forEach { libraryFile -> | ||
val kotlinLibrary = resolveSingleFileKlib( | ||
libraryFile = KFile(libraryFile.absolutePath), | ||
strategy = ToolingSingleFileKlibResolveStrategy | ||
) | ||
|
||
if (kotlinLibrary.getCompatibilityInfo().isCompatible) { | ||
// exists, is KLIB, has compatible format | ||
put( | ||
libraryFile.absolutePath, | ||
if (analysisPlatform == Platform.native) | ||
DokkaNativeKlibLibraryInfo(kotlinLibrary, analyzerServices, dependencyResolver) | ||
else | ||
DokkaJsKlibLibraryInfo(kotlinLibrary, analyzerServices, dependencyResolver) | ||
) | ||
classpath | ||
.filter { it.isDirectory || (it.extension == "jar" || it.extension == KLIB_FILE_EXTENSION) } | ||
.forEach { libraryFile -> | ||
try { | ||
val kotlinLibrary = resolveSingleFileKlib( | ||
libraryFile = KFile(libraryFile.absolutePath), | ||
strategy = ToolingSingleFileKlibResolveStrategy | ||
) | ||
|
||
if (kotlinLibrary.getCompatibilityInfo().isCompatible) { | ||
// exists, is KLIB, has compatible format | ||
put( | ||
libraryFile.absolutePath, | ||
if (analysisPlatform == Platform.native) DokkaNativeKlibLibraryInfo( | ||
kotlinLibrary, | ||
analyzerServices, | ||
dependencyResolver | ||
) | ||
else DokkaJsKlibLibraryInfo(kotlinLibrary, analyzerServices, dependencyResolver) | ||
) | ||
} | ||
} catch (e: Throwable) { | ||
configuration.getNotNull(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY) | ||
.report(CompilerMessageSeverity.WARNING, "Can not resolve KLIB. " + e.message) | ||
} | ||
} | ||
} | ||
} | ||
} | ||
|
||
|
@@ -487,7 +497,8 @@ class AnalysisEnvironment(val messageCollector: MessageCollector, val analysisPl | |
* Classpath for this environment. | ||
*/ | ||
val classpath: List<File> | ||
get() = configuration.jvmClasspathRoots | ||
get() = configuration.jvmClasspathRoots + configuration.getList(JSConfigurationKeys.LIBRARIES) | ||
.mapNotNull { File(it) } | ||
|
||
/** | ||
* Adds list of paths to classpath. | ||
|
@@ -496,8 +507,9 @@ class AnalysisEnvironment(val messageCollector: MessageCollector, val analysisPl | |
fun addClasspath(paths: List<File>) { | ||
if (analysisPlatform == Platform.js) { | ||
configuration.addAll(JSConfigurationKeys.LIBRARIES, paths.map { it.absolutePath }) | ||
} else { | ||
configuration.addJvmClasspathRoots(paths) | ||
Comment on lines
+510
to
+511
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Is it possible that a similar problem will arise if There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Possible, but it will depend on runners. I do not expect the similar problem here. |
||
} | ||
configuration.addJvmClasspathRoots(paths) | ||
} | ||
|
||
/** | ||
|
@@ -507,8 +519,9 @@ class AnalysisEnvironment(val messageCollector: MessageCollector, val analysisPl | |
fun addClasspath(path: File) { | ||
if (analysisPlatform == Platform.js) { | ||
configuration.add(JSConfigurationKeys.LIBRARIES, path.absolutePath) | ||
} else { | ||
configuration.addJvmClasspathRoot(path) | ||
} | ||
configuration.addJvmClasspathRoot(path) | ||
} | ||
|
||
/** | ||
|
Uh oh!
There was an error while loading. Please reload this page.