Add JS stdlib dependency only when JS target is set
^KT-41642 In Progress
This commit is contained in:
+10
-1
@@ -193,12 +193,21 @@ abstract class KotlinJsProjectExtension(project: Project) :
|
||||
|
||||
lateinit var legacyPreset: KotlinJsSingleTargetPreset
|
||||
|
||||
private val targetSetObservers = mutableListOf<(KotlinJsTargetDsl?) -> Unit>()
|
||||
|
||||
// target is public property
|
||||
// Users can write kotlin.target and it should work
|
||||
// So call of target should init default configuration
|
||||
@Deprecated("Use `target` instead", ReplaceWith("target"))
|
||||
var _target: KotlinJsTargetDsl? = null
|
||||
private set
|
||||
private set(value) {
|
||||
field = value
|
||||
targetSetObservers.forEach { it(value) }
|
||||
}
|
||||
|
||||
internal fun registerTargetObserver(observer: (KotlinJsTargetDsl?) -> Unit) {
|
||||
targetSetObservers.add(observer)
|
||||
}
|
||||
|
||||
companion object {
|
||||
internal fun reportJsCompilerMode(compilerType: KotlinJsCompilerType) {
|
||||
|
||||
+13
@@ -130,6 +130,9 @@ private fun Project.configureStdlibDefaultDependency(
|
||||
|
||||
when {
|
||||
project.hasKpmModel -> addStdlibToKpmProject(project, coreLibrariesVersion)
|
||||
topLevelExtension is KotlinJsProjectExtension -> topLevelExtension.registerTargetObserver { target ->
|
||||
target?.addStdlibDependency(configurations, dependencies, coreLibrariesVersion)
|
||||
}
|
||||
topLevelExtension is KotlinSingleTargetExtension<*> -> topLevelExtension
|
||||
.target
|
||||
.addStdlibDependency(configurations, dependencies, coreLibrariesVersion)
|
||||
@@ -297,6 +300,16 @@ private fun Project.configureKotlinTestDependency(
|
||||
coreLibrariesVersion: Provider<String>,
|
||||
) {
|
||||
when (topLevelExtension) {
|
||||
is KotlinJsProjectExtension -> topLevelExtension.registerTargetObserver { target ->
|
||||
target?.configureKotlinTestDependency(
|
||||
configurations,
|
||||
coreLibrariesVersion,
|
||||
objects,
|
||||
dependencies,
|
||||
tasks
|
||||
)
|
||||
}
|
||||
|
||||
is KotlinSingleTargetExtension<*> -> topLevelExtension.target.configureKotlinTestDependency(
|
||||
configurations,
|
||||
coreLibrariesVersion,
|
||||
|
||||
Reference in New Issue
Block a user