[Gradle, JS] With both compilers fully disambiguated names
This commit is contained in:
+5
-1
@@ -9,8 +9,10 @@
|
||||
package org.jetbrains.kotlin.gradle.plugin.mpp
|
||||
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinJsOptions
|
||||
import org.jetbrains.kotlin.gradle.plugin.JsCompilerType
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilationWithResources
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinTarget
|
||||
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget
|
||||
import org.jetbrains.kotlin.gradle.targets.js.npm.PackageJson
|
||||
import org.jetbrains.kotlin.gradle.tasks.Kotlin2JsCompile
|
||||
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
||||
@@ -34,7 +36,9 @@ open class KotlinJsCompilation(
|
||||
|
||||
override val defaultSourceSetName: String
|
||||
get() = lowerCamelCaseName(
|
||||
target.disambiguationClassifier?.removePrefix(LEGACY_DISAMBIGUATION_CLASSIFIER),
|
||||
(target as KotlinJsTarget).irTarget?.let {
|
||||
target.disambiguationClassifier?.removeSuffix(JsCompilerType.legacy.name.capitalize())
|
||||
} ?: target.disambiguationClassifier,
|
||||
compilationName
|
||||
)
|
||||
}
|
||||
+9
-1
@@ -10,10 +10,12 @@ import org.gradle.api.Project
|
||||
import org.gradle.api.plugins.JavaBasePlugin
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinJsProjectExtension
|
||||
import org.jetbrains.kotlin.gradle.dsl.kotlinExtension
|
||||
import org.jetbrains.kotlin.gradle.plugin.JsCompilerType
|
||||
import org.jetbrains.kotlin.gradle.plugin.configureDefaultVersionsResolutionStrategy
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsSingleTargetPreset
|
||||
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrSingleTargetPreset
|
||||
import org.jetbrains.kotlin.gradle.utils.checkGradleCompatibility
|
||||
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
||||
|
||||
open class KotlinJsPlugin(
|
||||
private val kotlinPluginVersion: String,
|
||||
@@ -35,7 +37,13 @@ open class KotlinJsPlugin(
|
||||
KotlinJsIrSingleTargetPreset(project, kotlinPluginVersion, mixedMode)
|
||||
else null
|
||||
|
||||
val target = KotlinJsSingleTargetPreset(project, kotlinPluginVersion, irPreset).createTarget("Js")
|
||||
val target = KotlinJsSingleTargetPreset(project, kotlinPluginVersion, irPreset)
|
||||
.createTarget(
|
||||
lowerCamelCaseName(
|
||||
"js",
|
||||
irPreset?.let { JsCompilerType.legacy.name }
|
||||
)
|
||||
)
|
||||
|
||||
kotlinExtension.target = target
|
||||
|
||||
|
||||
+5
-14
@@ -13,7 +13,6 @@ import org.jetbrains.kotlin.gradle.plugin.JsCompilerType
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
|
||||
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget
|
||||
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTargetConfigurator
|
||||
import org.jetbrains.kotlin.gradle.targets.js.ir.IR_TARGET_SUFFIX
|
||||
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrSingleTargetPreset
|
||||
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTargetPreset
|
||||
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
||||
@@ -35,18 +34,12 @@ open class KotlinJsTargetPreset(
|
||||
project,
|
||||
platformType
|
||||
).apply {
|
||||
this.irTarget = irPreset?.createTarget("$name$IR_TARGET_SUFFIX")
|
||||
this.irTarget = irPreset?.createTarget(
|
||||
lowerCamelCaseName(name.removeSuffix(JsCompilerType.legacy.name.capitalize()), JsCompilerType.ir.name)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
override fun provideTargetDisambiguationClassifier(target: KotlinOnlyTarget<KotlinJsCompilation>): String? =
|
||||
if (irPreset == null) {
|
||||
super.provideTargetDisambiguationClassifier(target)
|
||||
} else {
|
||||
LEGACY_DISAMBIGUATION_CLASSIFIER +
|
||||
super.provideTargetDisambiguationClassifier(target)
|
||||
}
|
||||
|
||||
override fun createKotlinTargetConfigurator() = KotlinJsTargetConfigurator(
|
||||
kotlinPluginVersion
|
||||
)
|
||||
@@ -79,11 +72,9 @@ class KotlinJsSingleTargetPreset(
|
||||
|
||||
// In a Kotlin/JS single-platform project, we don't need any disambiguation suffixes or prefixes in the names:
|
||||
override fun provideTargetDisambiguationClassifier(target: KotlinOnlyTarget<KotlinJsCompilation>): String? =
|
||||
irPreset?.let { LEGACY_DISAMBIGUATION_CLASSIFIER }
|
||||
null
|
||||
|
||||
override fun createKotlinTargetConfigurator() = KotlinJsTargetConfigurator(
|
||||
kotlinPluginVersion
|
||||
)
|
||||
}
|
||||
|
||||
const val LEGACY_DISAMBIGUATION_CLASSIFIER = "legacy"
|
||||
}
|
||||
+2
-2
@@ -5,9 +5,9 @@
|
||||
|
||||
package org.jetbrains.kotlin.gradle.targets.js.ir
|
||||
|
||||
import org.gradle.api.Task
|
||||
import org.gradle.api.file.SourceDirectorySet
|
||||
import org.gradle.api.tasks.TaskProvider
|
||||
import org.jetbrains.kotlin.gradle.plugin.JsCompilerType
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinTarget
|
||||
@@ -51,7 +51,7 @@ class KotlinJsIrCompilation(
|
||||
return lowerCamelCaseName(
|
||||
if ((target as KotlinJsIrTarget).mixedMode)
|
||||
target.disambiguationClassifier
|
||||
?.removeSuffix(IR_TARGET_SUFFIX)
|
||||
?.removeSuffix(JsCompilerType.ir.name.capitalize())
|
||||
else
|
||||
target.disambiguationClassifier,
|
||||
compilationName
|
||||
|
||||
+1
-3
@@ -60,6 +60,4 @@ class KotlinJsIrSingleTargetPreset(
|
||||
|
||||
override fun createKotlinTargetConfigurator(): KotlinOnlyTargetConfigurator<KotlinJsIrCompilation, KotlinJsIrTarget> =
|
||||
KotlinJsIrTargetConfigurator(kotlinPluginVersion)
|
||||
}
|
||||
|
||||
const val IR_TARGET_SUFFIX = "Ir"
|
||||
}
|
||||
Reference in New Issue
Block a user