[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
|
package org.jetbrains.kotlin.gradle.plugin.mpp
|
||||||
|
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinJsOptions
|
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.KotlinCompilationWithResources
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinTarget
|
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.targets.js.npm.PackageJson
|
||||||
import org.jetbrains.kotlin.gradle.tasks.Kotlin2JsCompile
|
import org.jetbrains.kotlin.gradle.tasks.Kotlin2JsCompile
|
||||||
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
||||||
@@ -34,7 +36,9 @@ open class KotlinJsCompilation(
|
|||||||
|
|
||||||
override val defaultSourceSetName: String
|
override val defaultSourceSetName: String
|
||||||
get() = lowerCamelCaseName(
|
get() = lowerCamelCaseName(
|
||||||
target.disambiguationClassifier?.removePrefix(LEGACY_DISAMBIGUATION_CLASSIFIER),
|
(target as KotlinJsTarget).irTarget?.let {
|
||||||
|
target.disambiguationClassifier?.removeSuffix(JsCompilerType.legacy.name.capitalize())
|
||||||
|
} ?: target.disambiguationClassifier,
|
||||||
compilationName
|
compilationName
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
+9
-1
@@ -10,10 +10,12 @@ import org.gradle.api.Project
|
|||||||
import org.gradle.api.plugins.JavaBasePlugin
|
import org.gradle.api.plugins.JavaBasePlugin
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinJsProjectExtension
|
import org.jetbrains.kotlin.gradle.dsl.KotlinJsProjectExtension
|
||||||
import org.jetbrains.kotlin.gradle.dsl.kotlinExtension
|
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.configureDefaultVersionsResolutionStrategy
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsSingleTargetPreset
|
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsSingleTargetPreset
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrSingleTargetPreset
|
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrSingleTargetPreset
|
||||||
import org.jetbrains.kotlin.gradle.utils.checkGradleCompatibility
|
import org.jetbrains.kotlin.gradle.utils.checkGradleCompatibility
|
||||||
|
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
||||||
|
|
||||||
open class KotlinJsPlugin(
|
open class KotlinJsPlugin(
|
||||||
private val kotlinPluginVersion: String,
|
private val kotlinPluginVersion: String,
|
||||||
@@ -35,7 +37,13 @@ open class KotlinJsPlugin(
|
|||||||
KotlinJsIrSingleTargetPreset(project, kotlinPluginVersion, mixedMode)
|
KotlinJsIrSingleTargetPreset(project, kotlinPluginVersion, mixedMode)
|
||||||
else null
|
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
|
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.plugin.KotlinPlatformType
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget
|
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTargetConfigurator
|
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.KotlinJsIrSingleTargetPreset
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTargetPreset
|
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTargetPreset
|
||||||
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
||||||
@@ -35,18 +34,12 @@ open class KotlinJsTargetPreset(
|
|||||||
project,
|
project,
|
||||||
platformType
|
platformType
|
||||||
).apply {
|
).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(
|
override fun createKotlinTargetConfigurator() = KotlinJsTargetConfigurator(
|
||||||
kotlinPluginVersion
|
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:
|
// 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? =
|
override fun provideTargetDisambiguationClassifier(target: KotlinOnlyTarget<KotlinJsCompilation>): String? =
|
||||||
irPreset?.let { LEGACY_DISAMBIGUATION_CLASSIFIER }
|
null
|
||||||
|
|
||||||
override fun createKotlinTargetConfigurator() = KotlinJsTargetConfigurator(
|
override fun createKotlinTargetConfigurator() = KotlinJsTargetConfigurator(
|
||||||
kotlinPluginVersion
|
kotlinPluginVersion
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
const val LEGACY_DISAMBIGUATION_CLASSIFIER = "legacy"
|
|
||||||
+2
-2
@@ -5,9 +5,9 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.gradle.targets.js.ir
|
package org.jetbrains.kotlin.gradle.targets.js.ir
|
||||||
|
|
||||||
import org.gradle.api.Task
|
|
||||||
import org.gradle.api.file.SourceDirectorySet
|
import org.gradle.api.file.SourceDirectorySet
|
||||||
import org.gradle.api.tasks.TaskProvider
|
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.KotlinCompilation
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
|
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinTarget
|
import org.jetbrains.kotlin.gradle.plugin.KotlinTarget
|
||||||
@@ -51,7 +51,7 @@ class KotlinJsIrCompilation(
|
|||||||
return lowerCamelCaseName(
|
return lowerCamelCaseName(
|
||||||
if ((target as KotlinJsIrTarget).mixedMode)
|
if ((target as KotlinJsIrTarget).mixedMode)
|
||||||
target.disambiguationClassifier
|
target.disambiguationClassifier
|
||||||
?.removeSuffix(IR_TARGET_SUFFIX)
|
?.removeSuffix(JsCompilerType.ir.name.capitalize())
|
||||||
else
|
else
|
||||||
target.disambiguationClassifier,
|
target.disambiguationClassifier,
|
||||||
compilationName
|
compilationName
|
||||||
|
|||||||
+1
-3
@@ -60,6 +60,4 @@ class KotlinJsIrSingleTargetPreset(
|
|||||||
|
|
||||||
override fun createKotlinTargetConfigurator(): KotlinOnlyTargetConfigurator<KotlinJsIrCompilation, KotlinJsIrTarget> =
|
override fun createKotlinTargetConfigurator(): KotlinOnlyTargetConfigurator<KotlinJsIrCompilation, KotlinJsIrTarget> =
|
||||||
KotlinJsIrTargetConfigurator(kotlinPluginVersion)
|
KotlinJsIrTargetConfigurator(kotlinPluginVersion)
|
||||||
}
|
}
|
||||||
|
|
||||||
const val IR_TARGET_SUFFIX = "Ir"
|
|
||||||
Reference in New Issue
Block a user