[Gradle, JS] Use KotlinJsIrCompilation with deprecated KotlinJsCompilation

^KT-41382 fixed
This commit is contained in:
Ilya Goncharov
2023-11-07 08:48:50 +00:00
committed by Space Team
parent 4c36538646
commit 3a6cdc83cf
38 changed files with 114 additions and 117 deletions
@@ -14,9 +14,9 @@ import org.jetbrains.kotlin.gradle.dsl.*
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
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
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
import org.jetbrains.kotlin.gradle.plugin.sources.KotlinDependencyScope import org.jetbrains.kotlin.gradle.plugin.sources.KotlinDependencyScope
import org.jetbrains.kotlin.gradle.plugin.sources.sourceSetDependencyConfigurationByScope import org.jetbrains.kotlin.gradle.plugin.sources.sourceSetDependencyConfigurationByScope
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrCompilation
import org.jetbrains.kotlin.gradle.targets.js.npm.SemVer import org.jetbrains.kotlin.gradle.targets.js.npm.SemVer
import org.jetbrains.kotlin.gradle.utils.forAllTargets import org.jetbrains.kotlin.gradle.utils.forAllTargets
@@ -45,7 +45,7 @@ private fun KotlinTarget.addKotlinDomApiDependency(
) { ) {
compilations.configureEach { compilation -> compilations.configureEach { compilation ->
if (compilation.platformType != KotlinPlatformType.js) return@configureEach if (compilation.platformType != KotlinPlatformType.js) return@configureEach
if (compilation !is KotlinJsCompilation) return@configureEach if (compilation !is KotlinJsIrCompilation) return@configureEach
compilation.allKotlinSourceSets.forEach { kotlinSourceSet -> compilation.allKotlinSourceSets.forEach { kotlinSourceSet ->
val scopeConfiguration = configurations val scopeConfiguration = configurations
@@ -9,8 +9,8 @@ import org.gradle.api.Project
import org.gradle.api.tasks.TaskProvider import org.gradle.api.tasks.TaskProvider
import org.jetbrains.kotlin.gradle.dsl.KotlinJsCompilerOptions import org.jetbrains.kotlin.gradle.dsl.KotlinJsCompilerOptions
import org.jetbrains.kotlin.gradle.dsl.KotlinJsCompilerOptionsHelper import org.jetbrains.kotlin.gradle.dsl.KotlinJsCompilerOptionsHelper
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
import org.jetbrains.kotlin.gradle.targets.js.ir.JsIrBinary import org.jetbrains.kotlin.gradle.targets.js.ir.JsIrBinary
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrCompilation
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTarget import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTarget
import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject
import org.jetbrains.kotlin.gradle.tasks.Kotlin2JsCompile import org.jetbrains.kotlin.gradle.tasks.Kotlin2JsCompile
@@ -43,7 +43,7 @@ internal class KotlinJsIrSourceSetProcessor(
it.dependsOn(kotlinTask) it.dependsOn(kotlinTask)
} }
val compilation = compilationInfo.tcs.compilation as KotlinJsCompilation val compilation = compilationInfo.tcs.compilation as KotlinJsIrCompilation
compilation.binaries compilation.binaries
.withType(JsIrBinary::class.java) .withType(JsIrBinary::class.java)
@@ -7,6 +7,7 @@ import org.jetbrains.kotlin.gradle.internal.kaptGenerateStubsTaskName
import org.jetbrains.kotlin.gradle.logging.kotlinDebug import org.jetbrains.kotlin.gradle.logging.kotlinDebug
import org.jetbrains.kotlin.gradle.plugin.mpp.* import org.jetbrains.kotlin.gradle.plugin.mpp.*
import org.jetbrains.kotlin.gradle.targets.js.ir.JsIrBinary import org.jetbrains.kotlin.gradle.targets.js.ir.JsIrBinary
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrCompilation
import org.jetbrains.kotlin.gradle.tasks.* import org.jetbrains.kotlin.gradle.tasks.*
import org.jetbrains.kotlin.gradle.utils.whenKaptEnabled import org.jetbrains.kotlin.gradle.utils.whenKaptEnabled
@@ -64,7 +65,7 @@ class SubpluginEnvironment(
kotlinCompilation.compileTaskProvider.configure(configureKotlinTask) kotlinCompilation.compileTaskProvider.configure(configureKotlinTask)
project.configurePluginOptionsForKapt(kotlinCompilation, configureKotlinTask) project.configurePluginOptionsForKapt(kotlinCompilation, configureKotlinTask)
if (kotlinCompilation is KotlinJsCompilation) { if (kotlinCompilation is KotlinJsIrCompilation) {
kotlinCompilation.binaries.all { kotlinCompilation.binaries.all {
if (it is JsIrBinary) { if (it is JsIrBinary) {
it.linkTask.configure(configureKotlinTask) it.linkTask.configure(configureKotlinTask)
@@ -10,10 +10,9 @@ import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
import org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycle.Stage.AfterEvaluateBuildscript import org.jetbrains.kotlin.gradle.plugin.KotlinPluginLifecycle.Stage.AfterEvaluateBuildscript
import org.jetbrains.kotlin.gradle.plugin.KotlinProjectSetupCoroutine import org.jetbrains.kotlin.gradle.plugin.KotlinProjectSetupCoroutine
import org.jetbrains.kotlin.gradle.plugin.await import org.jetbrains.kotlin.gradle.plugin.await
import org.jetbrains.kotlin.gradle.plugin.launchInStage import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrCompilation
import org.jetbrains.kotlin.gradle.utils.copyAttributes import org.jetbrains.kotlin.gradle.utils.copyAttributes
import org.jetbrains.kotlin.gradle.utils.forAllTargets import org.jetbrains.kotlin.gradle.utils.forAllTargets
import org.jetbrains.kotlin.gradle.utils.targets
/** /**
@@ -66,7 +65,7 @@ private val KotlinCompilation<*>.allOwnedConfigurationsNames
androidVariant.compileConfiguration.name, androidVariant.compileConfiguration.name,
androidVariant.runtimeConfiguration.name androidVariant.runtimeConfiguration.name
) )
is KotlinJsCompilation -> listOfNotNull(npmAggregatedConfigurationName, publicPackageJsonConfigurationName) is KotlinJsIrCompilation -> listOfNotNull(npmAggregatedConfigurationName, publicPackageJsonConfigurationName)
else -> emptyList() else -> emptyList()
} }
@@ -10,15 +10,15 @@ import org.jetbrains.kotlin.gradle.plugin.KotlinCommonSourceSetProcessor
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilationInfo import org.jetbrains.kotlin.gradle.plugin.KotlinCompilationInfo
import org.jetbrains.kotlin.gradle.plugin.KotlinJsIrSourceSetProcessor import org.jetbrains.kotlin.gradle.plugin.KotlinJsIrSourceSetProcessor
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinCommonCompilation import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinCommonCompilation
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJvmCompilation import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJvmCompilation
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrCompilation
import org.jetbrains.kotlin.gradle.tasks.KotlinTasksProvider import org.jetbrains.kotlin.gradle.tasks.KotlinTasksProvider
internal val KotlinCompilationProcessorSideEffect = KotlinCompilationSideEffect { compilation -> internal val KotlinCompilationProcessorSideEffect = KotlinCompilationSideEffect { compilation ->
val processor = when (compilation) { val processor = when (compilation) {
is KotlinCommonCompilation -> KotlinCommonSourceSetProcessor(KotlinCompilationInfo(compilation), KotlinTasksProvider()) is KotlinCommonCompilation -> KotlinCommonSourceSetProcessor(KotlinCompilationInfo(compilation), KotlinTasksProvider())
is KotlinJvmCompilation -> Kotlin2JvmSourceSetProcessor(KotlinTasksProvider(), KotlinCompilationInfo(compilation)) is KotlinJvmCompilation -> Kotlin2JvmSourceSetProcessor(KotlinTasksProvider(), KotlinCompilationInfo(compilation))
is KotlinJsCompilation -> KotlinJsIrSourceSetProcessor(KotlinTasksProvider(), KotlinCompilationInfo(compilation)) is KotlinJsIrCompilation -> KotlinJsIrSourceSetProcessor(KotlinTasksProvider(), KotlinCompilationInfo(compilation))
else -> null else -> null
} }
processor?.run() processor?.run()
@@ -14,7 +14,7 @@ import org.gradle.api.attributes.AttributeContainer
import org.gradle.api.tasks.TaskProvider import org.gradle.api.tasks.TaskProvider
import org.jetbrains.kotlin.gradle.dsl.KotlinJsCompilerOptions import org.jetbrains.kotlin.gradle.dsl.KotlinJsCompilerOptions
import org.jetbrains.kotlin.gradle.dsl.KotlinJsOptions import org.jetbrains.kotlin.gradle.dsl.KotlinJsOptions
import org.jetbrains.kotlin.gradle.plugin.* import org.jetbrains.kotlin.gradle.plugin.HasCompilerOptions
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationImpl import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationImpl
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsSubTargetContainerDsl import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsSubTargetContainerDsl
import org.jetbrains.kotlin.gradle.targets.js.ir.JsBinary import org.jetbrains.kotlin.gradle.targets.js.ir.JsBinary
@@ -11,10 +11,10 @@ import org.jetbrains.kotlin.gradle.plugin.CompilationExecutionSource
import org.jetbrains.kotlin.gradle.plugin.CompilationExecutionSourceSupport import org.jetbrains.kotlin.gradle.plugin.CompilationExecutionSourceSupport
import org.jetbrains.kotlin.gradle.plugin.KotlinTarget import org.jetbrains.kotlin.gradle.plugin.KotlinTarget
import org.jetbrains.kotlin.gradle.plugin.KotlinTargetTestRun import org.jetbrains.kotlin.gradle.plugin.KotlinTargetTestRun
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsSubTargetContainerDsl import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsSubTargetContainerDsl
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsSubTargetDsl import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsSubTargetDsl
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinWasmSubTargetContainerDsl import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinWasmSubTargetContainerDsl
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrCompilation
import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest
import org.jetbrains.kotlin.gradle.testing.KotlinReportAggregatingTestRun import org.jetbrains.kotlin.gradle.testing.KotlinReportAggregatingTestRun
import org.jetbrains.kotlin.gradle.testing.KotlinTaskTestRun import org.jetbrains.kotlin.gradle.testing.KotlinTaskTestRun
@@ -22,12 +22,12 @@ import org.jetbrains.kotlin.gradle.testing.requireCompilationOfTarget
import javax.inject.Inject import javax.inject.Inject
import kotlin.properties.Delegates import kotlin.properties.Delegates
class JsCompilationExecutionSource(override val compilation: KotlinJsCompilation) : class JsCompilationExecutionSource(override val compilation: KotlinJsIrCompilation) :
CompilationExecutionSource<KotlinJsCompilation> CompilationExecutionSource<KotlinJsIrCompilation>
open class KotlinJsPlatformTestRun(testRunName: String, target: KotlinTarget) : open class KotlinJsPlatformTestRun(testRunName: String, target: KotlinTarget) :
KotlinTaskTestRun<JsCompilationExecutionSource, KotlinJsTest>(testRunName, target), KotlinTaskTestRun<JsCompilationExecutionSource, KotlinJsTest>(testRunName, target),
CompilationExecutionSourceSupport<KotlinJsCompilation> { CompilationExecutionSourceSupport<KotlinJsIrCompilation> {
private var _executionSource: JsCompilationExecutionSource by Delegates.notNull() private var _executionSource: JsCompilationExecutionSource by Delegates.notNull()
@@ -38,7 +38,7 @@ open class KotlinJsPlatformTestRun(testRunName: String, target: KotlinTarget) :
_executionSource = value _executionSource = value
} }
override fun setExecutionSourceFrom(compilation: KotlinJsCompilation) { override fun setExecutionSourceFrom(compilation: KotlinJsIrCompilation) {
requireCompilationOfTarget(compilation, target) requireCompilationOfTarget(compilation, target)
executionSource = JsCompilationExecutionSource(compilation) executionSource = JsCompilationExecutionSource(compilation)
@@ -57,9 +57,9 @@ abstract class KotlinJsReportAggregatingTestRun @Inject constructor(
override val target: KotlinJsSubTargetContainerDsl override val target: KotlinJsSubTargetContainerDsl
) : KotlinReportAggregatingTestRun<JsCompilationExecutionSource, JsAggregatingExecutionSource, KotlinJsPlatformTestRun>(testRunName), ) : KotlinReportAggregatingTestRun<JsCompilationExecutionSource, JsAggregatingExecutionSource, KotlinJsPlatformTestRun>(testRunName),
KotlinTargetTestRun<JsAggregatingExecutionSource>, KotlinTargetTestRun<JsAggregatingExecutionSource>,
CompilationExecutionSourceSupport<KotlinJsCompilation> { CompilationExecutionSourceSupport<KotlinJsIrCompilation> {
override fun setExecutionSourceFrom(compilation: KotlinJsCompilation) = configureAllExecutions { override fun setExecutionSourceFrom(compilation: KotlinJsIrCompilation) = configureAllExecutions {
setExecutionSourceFrom(compilation) setExecutionSourceFrom(compilation)
} }
@@ -9,11 +9,12 @@
package org.jetbrains.kotlin.gradle.plugin.mpp package org.jetbrains.kotlin.gradle.plugin.mpp
import org.gradle.api.Project import org.gradle.api.Project
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrCompilation
@Deprecated("The Kotlin/JS legacy target is deprecated and its support completely discontinued", level = DeprecationLevel.WARNING) @Deprecated("The Kotlin/JS legacy target is deprecated and its support completely discontinued", level = DeprecationLevel.WARNING)
abstract class KotlinJsTargetPreset( abstract class KotlinJsTargetPreset(
project: Project project: Project
) : KotlinOnlyTargetPreset<KotlinOnlyTarget<KotlinJsCompilation>, KotlinJsCompilation>( ) : KotlinOnlyTargetPreset<KotlinOnlyTarget<KotlinJsIrCompilation>, KotlinJsIrCompilation>(
project project
) )
@@ -10,7 +10,7 @@ import org.gradle.api.file.RegularFileProperty
import org.gradle.api.tasks.* import org.gradle.api.tasks.*
import org.gradle.work.DisableCachingByDefault import org.gradle.work.DisableCachingByDefault
import org.gradle.work.NormalizeLineEndings import org.gradle.work.NormalizeLineEndings
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrCompilation
import org.jetbrains.kotlin.gradle.tasks.registerTask import org.jetbrains.kotlin.gradle.tasks.registerTask
import org.jetbrains.kotlin.gradle.utils.newFileProperty import org.jetbrains.kotlin.gradle.utils.newFileProperty
import javax.inject.Inject import javax.inject.Inject
@@ -89,7 +89,7 @@ constructor() : AbstractExecTask<BinaryenExec>(BinaryenExec::class.java) {
companion object { companion object {
fun create( fun create(
compilation: KotlinJsCompilation, compilation: KotlinJsIrCompilation,
name: String, name: String,
configuration: BinaryenExec.() -> Unit = {} configuration: BinaryenExec.() -> Unit = {}
): TaskProvider<BinaryenExec> { ): TaskProvider<BinaryenExec> {
@@ -10,8 +10,8 @@ import org.gradle.api.tasks.*
import org.gradle.work.DisableCachingByDefault import org.gradle.work.DisableCachingByDefault
import org.gradle.work.NormalizeLineEndings import org.gradle.work.NormalizeLineEndings
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
import org.jetbrains.kotlin.gradle.targets.js.addWasmExperimentalArguments import org.jetbrains.kotlin.gradle.targets.js.addWasmExperimentalArguments
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrCompilation
import org.jetbrains.kotlin.gradle.tasks.registerTask import org.jetbrains.kotlin.gradle.tasks.registerTask
import org.jetbrains.kotlin.gradle.utils.newFileProperty import org.jetbrains.kotlin.gradle.utils.newFileProperty
@@ -53,7 +53,7 @@ open class D8Exec : AbstractExecTask<D8Exec>(D8Exec::class.java) {
companion object { companion object {
fun create( fun create(
compilation: KotlinJsCompilation, compilation: KotlinJsIrCompilation,
name: String, name: String,
configuration: D8Exec.() -> Unit = {} configuration: D8Exec.() -> Unit = {}
): TaskProvider<D8Exec> { ): TaskProvider<D8Exec> {
@@ -8,14 +8,12 @@ package org.jetbrains.kotlin.gradle.targets.js.dsl
import org.gradle.api.Action import org.gradle.api.Action
import org.gradle.api.GradleException import org.gradle.api.GradleException
import org.gradle.api.NamedDomainObjectContainer import org.gradle.api.NamedDomainObjectContainer
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
import org.jetbrains.kotlin.gradle.dsl.KotlinJsCompilerOptions
import org.jetbrains.kotlin.gradle.dsl.KotlinJsDce import org.jetbrains.kotlin.gradle.dsl.KotlinJsDce
import org.jetbrains.kotlin.gradle.plugin.KotlinTarget import org.jetbrains.kotlin.gradle.plugin.KotlinTarget
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsPlatformTestRun import org.jetbrains.kotlin.gradle.targets.js.KotlinJsPlatformTestRun
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsReportAggregatingTestRun import org.jetbrains.kotlin.gradle.targets.js.KotlinJsReportAggregatingTestRun
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsBinaryContainer import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsBinaryContainer
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrCompilation
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsExec import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsExec
import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest
import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpack import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpack
@@ -65,7 +63,7 @@ interface KotlinJsTargetDsl : KotlinTarget, KotlinTargetWithNodeJsDsl {
val testRuns: NamedDomainObjectContainer<KotlinJsReportAggregatingTestRun> val testRuns: NamedDomainObjectContainer<KotlinJsReportAggregatingTestRun>
// Need to compatibility when users use KotlinJsCompilation specific in build script // Need to compatibility when users use KotlinJsCompilation specific in build script
override val compilations: NamedDomainObjectContainer<KotlinJsCompilation> override val compilations: NamedDomainObjectContainer<KotlinJsIrCompilation>
} }
interface KotlinTargetWithNodeJsDsl { interface KotlinTargetWithNodeJsDsl {
@@ -28,7 +28,7 @@ interface JsBinary {
} }
sealed class JsIrBinary( sealed class JsIrBinary(
final override val compilation: KotlinJsCompilation, final override val compilation: KotlinJsIrCompilation,
final override val name: String, final override val name: String,
override val mode: KotlinJsBinaryMode override val mode: KotlinJsBinaryMode
) : JsBinary { ) : JsBinary {
@@ -85,7 +85,7 @@ sealed class JsIrBinary(
} }
open class Executable( open class Executable(
compilation: KotlinJsCompilation, compilation: KotlinJsIrCompilation,
name: String, name: String,
mode: KotlinJsBinaryMode mode: KotlinJsBinaryMode
) : JsIrBinary( ) : JsIrBinary(
@@ -109,7 +109,7 @@ open class Executable(
} }
open class ExecutableWasm( open class ExecutableWasm(
compilation: KotlinJsCompilation, compilation: KotlinJsIrCompilation,
name: String, name: String,
mode: KotlinJsBinaryMode mode: KotlinJsBinaryMode
) : Executable( ) : Executable(
@@ -129,7 +129,7 @@ open class ExecutableWasm(
} }
class Library( class Library(
compilation: KotlinJsCompilation, compilation: KotlinJsIrCompilation,
name: String, name: String,
mode: KotlinJsBinaryMode mode: KotlinJsBinaryMode
) : JsIrBinary( ) : JsIrBinary(
@@ -15,7 +15,6 @@ import org.gradle.language.base.plugins.LifecycleBasePlugin
import org.jetbrains.kotlin.gradle.dsl.JsModuleKind import org.jetbrains.kotlin.gradle.dsl.JsModuleKind
import org.jetbrains.kotlin.gradle.dsl.KotlinJsDce import org.jetbrains.kotlin.gradle.dsl.KotlinJsDce
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
import org.jetbrains.kotlin.gradle.utils.archivesName import org.jetbrains.kotlin.gradle.utils.archivesName
import org.jetbrains.kotlin.gradle.targets.js.dsl.ExperimentalDceDsl import org.jetbrains.kotlin.gradle.targets.js.dsl.ExperimentalDceDsl
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryMode import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryMode
@@ -105,7 +104,7 @@ abstract class KotlinBrowserJsIr @Inject constructor(target: KotlinJsIrTarget) :
} }
override fun configureRun( override fun configureRun(
compilation: KotlinJsCompilation compilation: KotlinJsIrCompilation
) { ) {
val commonRunTask = registerSubTargetTask<Task>(disambiguateCamelCased(RUN_TASK_NAME)) {} val commonRunTask = registerSubTargetTask<Task>(disambiguateCamelCased(RUN_TASK_NAME)) {}
@@ -172,7 +171,7 @@ abstract class KotlinBrowserJsIr @Inject constructor(target: KotlinJsIrTarget) :
} }
override fun configureBuild( override fun configureBuild(
compilation: KotlinJsCompilation compilation: KotlinJsIrCompilation
) { ) {
val project = compilation.target.project val project = compilation.target.project
@@ -14,7 +14,6 @@ import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinTargetWithBinaries import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinTargetWithBinaries
import org.jetbrains.kotlin.gradle.plugin.mpp.isMain import org.jetbrains.kotlin.gradle.plugin.mpp.isMain
import org.jetbrains.kotlin.gradle.targets.js.binaryen.BinaryenExec
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryMode import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryMode
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryMode.DEVELOPMENT import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryMode.DEVELOPMENT
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryMode.PRODUCTION import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryMode.PRODUCTION
@@ -25,7 +24,7 @@ import javax.inject.Inject
open class KotlinJsBinaryContainer open class KotlinJsBinaryContainer
@Inject @Inject
constructor( constructor(
val target: KotlinTargetWithBinaries<KotlinJsCompilation, KotlinJsBinaryContainer>, val target: KotlinTargetWithBinaries<KotlinJsIrCompilation, KotlinJsBinaryContainer>,
backingContainer: DomainObjectSet<JsBinary>, backingContainer: DomainObjectSet<JsBinary>,
) : DomainObjectSet<JsBinary> by backingContainer { ) : DomainObjectSet<JsBinary> by backingContainer {
val project: Project val project: Project
@@ -33,10 +32,15 @@ constructor(
private val binaryNames = mutableSetOf<String>() private val binaryNames = mutableSetOf<String>()
private val defaultCompilation: KotlinJsCompilation private val defaultCompilation: KotlinJsIrCompilation
get() = target.compilations.getByName(KotlinCompilation.MAIN_COMPILATION_NAME) get() = target.compilations.getByName(KotlinCompilation.MAIN_COMPILATION_NAME)
// For Groovy DSL fun executable(
compilation: KotlinJsIrCompilation,
): List<JsBinary> {
return executable(compilation as KotlinJsCompilation)
}
@JvmOverloads @JvmOverloads
fun executable( fun executable(
compilation: KotlinJsCompilation = defaultCompilation, compilation: KotlinJsCompilation = defaultCompilation,
@@ -54,13 +58,13 @@ constructor(
(this as KotlinJsIrSubTarget).produceExecutable() (this as KotlinJsIrSubTarget).produceExecutable()
} }
return compilation.binaries.executableIrInternal(compilation) return compilation.binaries.executableIrInternal(compilation as KotlinJsIrCompilation)
} }
throw GradleException("Target should be KotlinJsIrTarget, but found $target") throw GradleException("Target should be KotlinJsIrTarget, but found $target")
} }
internal fun executableIrInternal(compilation: KotlinJsCompilation): List<JsBinary> = createBinaries( internal fun executableIrInternal(compilation: KotlinJsIrCompilation): List<JsBinary> = createBinaries(
compilation = compilation, compilation = compilation,
jsBinaryType = KotlinJsBinaryType.EXECUTABLE, jsBinaryType = KotlinJsBinaryType.EXECUTABLE,
create = { compilation, name, mode -> create = { compilation, name, mode ->
@@ -75,7 +79,7 @@ constructor(
// For Groovy DSL // For Groovy DSL
@JvmOverloads @JvmOverloads
fun library( fun library(
compilation: KotlinJsCompilation = defaultCompilation, compilation: KotlinJsIrCompilation = defaultCompilation,
): List<JsBinary> { ): List<JsBinary> {
if (target is KotlinJsIrTarget) { if (target is KotlinJsIrTarget) {
target.whenBrowserConfigured { target.whenBrowserConfigured {
@@ -112,10 +116,10 @@ constructor(
.matching { it.mode == mode } .matching { it.mode == mode }
private fun <T : JsBinary> createBinaries( private fun <T : JsBinary> createBinaries(
compilation: KotlinJsCompilation, compilation: KotlinJsIrCompilation,
modes: Collection<KotlinJsBinaryMode> = listOf(PRODUCTION, DEVELOPMENT), modes: Collection<KotlinJsBinaryMode> = listOf(PRODUCTION, DEVELOPMENT),
jsBinaryType: KotlinJsBinaryType, jsBinaryType: KotlinJsBinaryType,
create: (compilation: KotlinJsCompilation, name: String, mode: KotlinJsBinaryMode) -> T, create: (compilation: KotlinJsIrCompilation, name: String, mode: KotlinJsBinaryMode) -> T,
) = ) =
modes.map { modes.map {
createBinary( createBinary(
@@ -127,10 +131,10 @@ constructor(
} }
private fun <T : JsBinary> createBinary( private fun <T : JsBinary> createBinary(
compilation: KotlinJsCompilation, compilation: KotlinJsIrCompilation,
mode: KotlinJsBinaryMode, mode: KotlinJsBinaryMode,
jsBinaryType: KotlinJsBinaryType, jsBinaryType: KotlinJsBinaryType,
create: (compilation: KotlinJsCompilation, name: String, mode: KotlinJsBinaryMode) -> T, create: (compilation: KotlinJsIrCompilation, name: String, mode: KotlinJsBinaryMode) -> T,
): JsBinary { ): JsBinary {
val name = generateBinaryName( val name = generateBinaryName(
compilation, compilation,
@@ -6,6 +6,9 @@
package org.jetbrains.kotlin.gradle.targets.js.ir package org.jetbrains.kotlin.gradle.targets.js.ir
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.KotlinCompilationImpl
import javax.inject.Inject
@Deprecated("Use KotlinJsCompilation instead") open class KotlinJsIrCompilation @Inject internal constructor(
typealias KotlinJsIrCompilation = KotlinJsCompilation compilation: KotlinCompilationImpl,
) : KotlinJsCompilation(compilation)
@@ -7,7 +7,6 @@ package org.jetbrains.kotlin.gradle.targets.js.ir
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinCompilationFactory import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinCompilationFactory
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.DefaultKotlinCompilationFriendPathsResolver import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.DefaultKotlinCompilationFriendPathsResolver
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.DefaultKotlinCompilationPreConfigure import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.DefaultKotlinCompilationPreConfigure
import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.factory.* import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.factory.*
@@ -19,9 +18,9 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.factory.KotlinJsCo
class KotlinJsIrCompilationFactory internal constructor( class KotlinJsIrCompilationFactory internal constructor(
override val target: KotlinJsIrTarget, override val target: KotlinJsIrTarget,
) : KotlinCompilationFactory<KotlinJsCompilation> { ) : KotlinCompilationFactory<KotlinJsIrCompilation> {
override val itemClass: Class<KotlinJsCompilation> override val itemClass: Class<KotlinJsIrCompilation>
get() = KotlinJsCompilation::class.java get() = KotlinJsIrCompilation::class.java
private val compilationImplFactory: KotlinCompilationImplFactory = KotlinCompilationImplFactory( private val compilationImplFactory: KotlinCompilationImplFactory = KotlinCompilationImplFactory(
compilerOptionsFactory = KotlinJsCompilerOptionsFactory, compilerOptionsFactory = KotlinJsCompilerOptionsFactory,
@@ -39,7 +38,7 @@ class KotlinJsIrCompilationFactory internal constructor(
}, },
) )
override fun create(name: String): KotlinJsCompilation = target.project.objects.newInstance( override fun create(name: String): KotlinJsIrCompilation = target.project.objects.newInstance(
itemClass, compilationImplFactory.create(target, name) itemClass, compilationImplFactory.create(target, name)
) )
} }
@@ -15,7 +15,6 @@ import org.gradle.language.base.plugins.LifecycleBasePlugin
import org.jetbrains.kotlin.gradle.plugin.AbstractKotlinTargetConfigurator import org.jetbrains.kotlin.gradle.plugin.AbstractKotlinTargetConfigurator
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
import org.jetbrains.kotlin.gradle.plugin.KotlinTargetWithTests import org.jetbrains.kotlin.gradle.plugin.KotlinTargetWithTests
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
import org.jetbrains.kotlin.gradle.plugin.mpp.isMain import org.jetbrains.kotlin.gradle.plugin.mpp.isMain
import org.jetbrains.kotlin.gradle.utils.whenEvaluated import org.jetbrains.kotlin.gradle.utils.whenEvaluated
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsPlatformTestRun import org.jetbrains.kotlin.gradle.targets.js.KotlinJsPlatformTestRun
@@ -104,7 +103,7 @@ abstract class KotlinJsIrSubTarget(
} }
} }
private fun configureTestsRun(testRun: KotlinJsPlatformTestRun, compilation: KotlinJsCompilation) { private fun configureTestsRun(testRun: KotlinJsPlatformTestRun, compilation: KotlinJsIrCompilation) {
fun KotlinJsPlatformTestRun.subtargetTestTaskName(): String = disambiguateCamelCased( fun KotlinJsPlatformTestRun.subtargetTestTaskName(): String = disambiguateCamelCased(
lowerCamelCaseName( lowerCamelCaseName(
name.takeIf { it != KotlinTargetWithTests.DEFAULT_TEST_RUN_NAME }, name.takeIf { it != KotlinTargetWithTests.DEFAULT_TEST_RUN_NAME },
@@ -193,14 +192,14 @@ abstract class KotlinJsIrSubTarget(
} }
} }
private fun configureMain(compilation: KotlinJsCompilation) { private fun configureMain(compilation: KotlinJsIrCompilation) {
configureRun(compilation) configureRun(compilation)
configureBuild(compilation) configureBuild(compilation)
} }
protected abstract fun configureRun(compilation: KotlinJsCompilation) protected abstract fun configureRun(compilation: KotlinJsIrCompilation)
protected abstract fun configureBuild(compilation: KotlinJsCompilation) protected abstract fun configureBuild(compilation: KotlinJsIrCompilation)
private fun configureLibrary() { private fun configureLibrary() {
target.compilations.all { compilation -> target.compilations.all { compilation ->
@@ -210,7 +209,7 @@ abstract class KotlinJsIrSubTarget(
} }
} }
protected open fun configureLibrary(compilation: KotlinJsCompilation) { protected open fun configureLibrary(compilation: KotlinJsIrCompilation) {
val project = compilation.target.project val project = compilation.target.project
val assembleTaskProvider = project.tasks.named(LifecycleBasePlugin.ASSEMBLE_TASK_NAME) val assembleTaskProvider = project.tasks.named(LifecycleBasePlugin.ASSEMBLE_TASK_NAME)
@@ -6,7 +6,6 @@
package org.jetbrains.kotlin.gradle.targets.js.ir package org.jetbrains.kotlin.gradle.targets.js.ir
import org.gradle.language.base.plugins.LifecycleBasePlugin import org.gradle.language.base.plugins.LifecycleBasePlugin
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryMode import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryMode
import org.jetbrains.kotlin.gradle.tasks.dependsOn import org.jetbrains.kotlin.gradle.tasks.dependsOn
import org.jetbrains.kotlin.util.capitalizeDecapitalize.toLowerCaseAsciiOnly import org.jetbrains.kotlin.util.capitalizeDecapitalize.toLowerCaseAsciiOnly
@@ -16,7 +15,7 @@ abstract class KotlinJsIrSubTargetBase(target: KotlinJsIrTarget, classifier: Str
protected val runTaskName = disambiguateCamelCased("run") protected val runTaskName = disambiguateCamelCased("run")
override fun configureRun(compilation: KotlinJsCompilation) { override fun configureRun(compilation: KotlinJsIrCompilation) {
compilation.binaries compilation.binaries
.withType(JsIrBinary::class.java) .withType(JsIrBinary::class.java)
.matching { it is Executable } .matching { it is Executable }
@@ -41,7 +40,7 @@ abstract class KotlinJsIrSubTargetBase(target: KotlinJsIrTarget, classifier: Str
protected abstract fun locateOrRegisterRunTask(binary: JsIrBinary, name: String) protected abstract fun locateOrRegisterRunTask(binary: JsIrBinary, name: String)
override fun configureBuild(compilation: KotlinJsCompilation) { override fun configureBuild(compilation: KotlinJsIrCompilation) {
compilation.binaries compilation.binaries
.getIrBinaries(KotlinJsBinaryMode.PRODUCTION) .getIrBinaries(KotlinJsBinaryMode.PRODUCTION)
.matching { it is Executable } .matching { it is Executable }
@@ -50,7 +49,7 @@ abstract class KotlinJsIrSubTargetBase(target: KotlinJsIrTarget, classifier: Str
} }
} }
override fun configureLibrary(compilation: KotlinJsCompilation) { override fun configureLibrary(compilation: KotlinJsIrCompilation) {
super.configureLibrary(compilation) super.configureLibrary(compilation)
compilation.binaries compilation.binaries
@@ -46,7 +46,7 @@ constructor(
project: Project, project: Project,
platformType: KotlinPlatformType, platformType: KotlinPlatformType,
) : ) :
KotlinTargetWithBinaries<KotlinJsCompilation, KotlinJsBinaryContainer>(project, platformType), KotlinTargetWithBinaries<KotlinJsIrCompilation, KotlinJsBinaryContainer>(project, platformType),
KotlinTargetWithTests<JsAggregatingExecutionSource, KotlinJsReportAggregatingTestRun>, KotlinTargetWithTests<JsAggregatingExecutionSource, KotlinJsReportAggregatingTestRun>,
KotlinJsTargetDsl, KotlinJsTargetDsl,
KotlinWasmJsTargetDsl, KotlinWasmJsTargetDsl,
@@ -127,7 +127,7 @@ constructor(
) )
override val binaries: KotlinJsBinaryContainer override val binaries: KotlinJsBinaryContainer
get() = compilations.withType(KotlinJsCompilation::class.java) get() = compilations.withType(KotlinJsIrCompilation::class.java)
.named(MAIN_COMPILATION_NAME) .named(MAIN_COMPILATION_NAME)
.map { it.binaries } .map { it.binaries }
.get() .get()
@@ -10,10 +10,9 @@ import org.jetbrains.kotlin.gradle.dsl.JsSourceMapEmbedMode
import org.jetbrains.kotlin.gradle.dsl.KotlinJsCompilerOptions import org.jetbrains.kotlin.gradle.dsl.KotlinJsCompilerOptions
import org.jetbrains.kotlin.gradle.plugin.KotlinOnlyTargetConfigurator import org.jetbrains.kotlin.gradle.plugin.KotlinOnlyTargetConfigurator
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
open class KotlinJsIrTargetConfigurator : open class KotlinJsIrTargetConfigurator :
KotlinOnlyTargetConfigurator<KotlinJsCompilation, KotlinJsIrTarget>(true) { KotlinOnlyTargetConfigurator<KotlinJsIrCompilation, KotlinJsIrTarget>(true) {
override val runtimeIncludesCompilationOutputs: Boolean = false override val runtimeIncludesCompilationOutputs: Boolean = false
@@ -11,7 +11,6 @@ import org.jetbrains.kotlin.gradle.plugin.AbstractKotlinTargetConfigurator
import org.jetbrains.kotlin.gradle.plugin.KotlinOnlyTargetConfigurator import org.jetbrains.kotlin.gradle.plugin.KotlinOnlyTargetConfigurator
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinCompilationFactory import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinCompilationFactory
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinOnlyTarget import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinOnlyTarget
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinOnlyTargetPreset import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinOnlyTargetPreset
import org.jetbrains.kotlin.gradle.plugin.statistics.KotlinBuildStatsService import org.jetbrains.kotlin.gradle.plugin.statistics.KotlinBuildStatsService
@@ -21,7 +20,7 @@ import org.jetbrains.kotlin.statistics.metrics.StringMetrics
@DeprecatedTargetPresetApi @DeprecatedTargetPresetApi
open class KotlinJsIrTargetPreset( open class KotlinJsIrTargetPreset(
project: Project, project: Project,
) : KotlinOnlyTargetPreset<KotlinJsIrTarget, KotlinJsCompilation>( ) : KotlinOnlyTargetPreset<KotlinJsIrTarget, KotlinJsIrCompilation>(
project project
) { ) {
open val isMpp: Boolean open val isMpp: Boolean
@@ -54,7 +53,7 @@ open class KotlinJsIrTargetPreset(
//TODO[Ilya Goncharov] remove public morozov //TODO[Ilya Goncharov] remove public morozov
public override fun createCompilationFactory( public override fun createCompilationFactory(
forTarget: KotlinJsIrTarget, forTarget: KotlinJsIrTarget,
): KotlinCompilationFactory<KotlinJsCompilation> = ): KotlinCompilationFactory<KotlinJsIrCompilation> =
KotlinJsIrCompilationFactory(forTarget) KotlinJsIrCompilationFactory(forTarget)
companion object { companion object {
@@ -72,10 +71,10 @@ class KotlinJsIrSingleTargetPreset(
get() = false get() = false
// 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<KotlinJsIrCompilation>): String? {
return null return null
} }
override fun createKotlinTargetConfigurator(): KotlinOnlyTargetConfigurator<KotlinJsCompilation, KotlinJsIrTarget> = override fun createKotlinTargetConfigurator(): KotlinOnlyTargetConfigurator<KotlinJsIrCompilation, KotlinJsIrTarget> =
KotlinJsIrTargetConfigurator() KotlinJsIrTargetConfigurator()
} }
@@ -9,7 +9,6 @@ import org.gradle.api.Project
import org.jetbrains.kotlin.gradle.DeprecatedTargetPresetApi import org.jetbrains.kotlin.gradle.DeprecatedTargetPresetApi
import org.jetbrains.kotlin.gradle.plugin.* import org.jetbrains.kotlin.gradle.plugin.*
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinCompilationFactory import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinCompilationFactory
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinOnlyTargetPreset import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinOnlyTargetPreset
import org.jetbrains.kotlin.gradle.targets.js.KotlinWasmTargetType import org.jetbrains.kotlin.gradle.targets.js.KotlinWasmTargetType
import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly
@@ -19,7 +18,7 @@ import org.jetbrains.kotlin.util.capitalizeDecapitalize.toLowerCaseAsciiOnly
class KotlinWasmTargetPreset( class KotlinWasmTargetPreset(
project: Project, project: Project,
private val targetType: KotlinWasmTargetType private val targetType: KotlinWasmTargetType
) : KotlinOnlyTargetPreset<KotlinJsIrTarget, KotlinJsCompilation>(project) { ) : KotlinOnlyTargetPreset<KotlinJsIrTarget, KotlinJsIrCompilation>(project) {
override val platformType: KotlinPlatformType = KotlinPlatformType.wasm override val platformType: KotlinPlatformType = KotlinPlatformType.wasm
override fun instantiateTarget(name: String): KotlinJsIrTarget { override fun instantiateTarget(name: String): KotlinJsIrTarget {
@@ -41,7 +40,7 @@ class KotlinWasmTargetPreset(
public override fun createCompilationFactory( public override fun createCompilationFactory(
forTarget: KotlinJsIrTarget forTarget: KotlinJsIrTarget
): KotlinCompilationFactory<KotlinJsCompilation> = ): KotlinCompilationFactory<KotlinJsIrCompilation> =
KotlinJsIrCompilationFactory(forTarget) KotlinJsIrCompilationFactory(forTarget)
companion object { companion object {
@@ -10,10 +10,10 @@ import org.gradle.api.tasks.*
import org.gradle.work.DisableCachingByDefault import org.gradle.work.DisableCachingByDefault
import org.gradle.work.NormalizeLineEndings import org.gradle.work.NormalizeLineEndings
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
import org.jetbrains.kotlin.gradle.targets.js.KotlinWasmTargetType import org.jetbrains.kotlin.gradle.targets.js.KotlinWasmTargetType
import org.jetbrains.kotlin.gradle.targets.js.RequiredKotlinJsDependency import org.jetbrains.kotlin.gradle.targets.js.RequiredKotlinJsDependency
import org.jetbrains.kotlin.gradle.targets.js.addWasmExperimentalArguments import org.jetbrains.kotlin.gradle.targets.js.addWasmExperimentalArguments
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrCompilation
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTarget import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTarget
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin.Companion.kotlinNodeJsExtension import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin.Companion.kotlinNodeJsExtension
import org.jetbrains.kotlin.gradle.targets.js.npm.RequiresNpmDependencies import org.jetbrains.kotlin.gradle.targets.js.npm.RequiresNpmDependencies
@@ -28,7 +28,7 @@ open class NodeJsExec
constructor( constructor(
@Internal @Internal
@Transient @Transient
override val compilation: KotlinJsCompilation, override val compilation: KotlinJsIrCompilation,
) : AbstractExecTask<NodeJsExec>(NodeJsExec::class.java), RequiresNpmDependencies { ) : AbstractExecTask<NodeJsExec>(NodeJsExec::class.java), RequiresNpmDependencies {
@Transient @Transient
@get:Internal @get:Internal
@@ -91,7 +91,7 @@ constructor(
companion object { companion object {
fun create( fun create(
compilation: KotlinJsCompilation, compilation: KotlinJsIrCompilation,
name: String, name: String,
configuration: NodeJsExec.() -> Unit = {} configuration: NodeJsExec.() -> Unit = {}
): TaskProvider<NodeJsExec> { ): TaskProvider<NodeJsExec> {
@@ -13,23 +13,27 @@ import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
import org.jetbrains.kotlin.gradle.plugin.mpp.disambiguateName import org.jetbrains.kotlin.gradle.plugin.mpp.disambiguateName
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsTargetDsl import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsTargetDsl
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrCompilation
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin.Companion.kotlinNodeJsExtension import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin.Companion.kotlinNodeJsExtension
import org.jetbrains.kotlin.gradle.targets.js.npm.tasks.KotlinPackageJsonTask import org.jetbrains.kotlin.gradle.targets.js.npm.tasks.KotlinPackageJsonTask
import org.jetbrains.kotlin.util.capitalizeDecapitalize.toLowerCaseAsciiOnly import org.jetbrains.kotlin.util.capitalizeDecapitalize.toLowerCaseAsciiOnly
import java.io.File import java.io.File
import java.io.Serializable import java.io.Serializable
val KotlinJsCompilation.npmProject: NpmProject val KotlinJsIrCompilation.npmProject: NpmProject
get() = NpmProject(this) get() = NpmProject(this)
@Deprecated("Use npmProject for KotlinJsIrCompilation")
val KotlinJsCompilation.npmProject: NpmProject
get() = NpmProject(this as KotlinJsIrCompilation)
/** /**
* Basic info for [NpmProject] created from [compilation]. * Basic info for [NpmProject] created from [compilation].
* This class contains only basic info. * This class contains only basic info.
* *
* More info can be obtained from [KotlinCompilationNpmResolution], which is available after project resolution (after [KotlinNpmInstallTask] execution). * More info can be obtained from [KotlinCompilationNpmResolution], which is available after project resolution (after [KotlinNpmInstallTask] execution).
*/ */
open class NpmProject(@Transient val compilation: KotlinJsCompilation) : Serializable { open class NpmProject(@Transient val compilation: KotlinJsIrCompilation) : Serializable {
val compilationName = compilation.disambiguatedName val compilationName = compilation.disambiguatedName
private val extension by lazy { private val extension by lazy {
@@ -6,11 +6,11 @@
package org.jetbrains.kotlin.gradle.targets.js.npm package org.jetbrains.kotlin.gradle.targets.js.npm
import org.gradle.api.tasks.Internal import org.gradle.api.tasks.Internal
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
import org.jetbrains.kotlin.gradle.targets.js.RequiredKotlinJsDependency import org.jetbrains.kotlin.gradle.targets.js.RequiredKotlinJsDependency
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrCompilation
interface RequiresNpmDependencies { interface RequiresNpmDependencies {
val compilation: KotlinJsCompilation val compilation: KotlinJsIrCompilation
val requiredNpmDependencies: Set<RequiredKotlinJsDependency> val requiredNpmDependencies: Set<RequiredKotlinJsDependency>
@Internal @Internal
@@ -19,13 +19,13 @@ import org.gradle.api.tasks.bundling.Zip
import org.jetbrains.kotlin.gradle.dsl.JsModuleKind import org.jetbrains.kotlin.gradle.dsl.JsModuleKind
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
import org.jetbrains.kotlin.gradle.plugin.categoryByName import org.jetbrains.kotlin.gradle.plugin.categoryByName
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinUsages import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinUsages
import org.jetbrains.kotlin.gradle.plugin.mpp.isMain import org.jetbrains.kotlin.gradle.plugin.mpp.isMain
import org.jetbrains.kotlin.gradle.plugin.sources.KotlinDependencyScope import org.jetbrains.kotlin.gradle.plugin.sources.KotlinDependencyScope
import org.jetbrains.kotlin.gradle.plugin.sources.compilationDependencyConfigurationByScope import org.jetbrains.kotlin.gradle.plugin.sources.compilationDependencyConfigurationByScope
import org.jetbrains.kotlin.gradle.plugin.sources.sourceSetDependencyConfigurationByScope import org.jetbrains.kotlin.gradle.plugin.sources.sourceSetDependencyConfigurationByScope
import org.jetbrains.kotlin.gradle.plugin.usesPlatformOf import org.jetbrains.kotlin.gradle.plugin.usesPlatformOf
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrCompilation
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTarget import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTarget
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin.Companion.kotlinNodeJsExtension import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin.Companion.kotlinNodeJsExtension
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin.Companion.kotlinNpmResolutionManager import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin.Companion.kotlinNpmResolutionManager
@@ -42,7 +42,7 @@ import java.io.Serializable
*/ */
class KotlinCompilationNpmResolver( class KotlinCompilationNpmResolver(
val projectResolver: KotlinProjectNpmResolver, val projectResolver: KotlinProjectNpmResolver,
val compilation: KotlinJsCompilation, val compilation: KotlinJsIrCompilation,
) : Serializable { ) : Serializable {
var rootResolver = projectResolver.resolver var rootResolver = projectResolver.resolver
@@ -204,7 +204,7 @@ class KotlinCompilationNpmResolver(
//TODO: rewrite when we get general way to have inter compilation dependencies //TODO: rewrite when we get general way to have inter compilation dependencies
if (compilation.name == KotlinCompilation.TEST_COMPILATION_NAME) { if (compilation.name == KotlinCompilation.TEST_COMPILATION_NAME) {
val main = compilation.target.compilations.findByName(KotlinCompilation.MAIN_COMPILATION_NAME) as KotlinJsCompilation val main = compilation.target.compilations.findByName(KotlinCompilation.MAIN_COMPILATION_NAME) as KotlinJsIrCompilation
internalDependencies.add( internalDependencies.add(
InternalDependency( InternalDependency(
projectResolver.projectPath, projectResolver.projectPath,
@@ -13,7 +13,7 @@ import org.jetbrains.kotlin.gradle.dsl.KotlinSingleTargetExtension
import org.jetbrains.kotlin.gradle.dsl.kotlinExtensionOrNull import org.jetbrains.kotlin.gradle.dsl.kotlinExtensionOrNull
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
import org.jetbrains.kotlin.gradle.plugin.KotlinTarget import org.jetbrains.kotlin.gradle.plugin.KotlinTarget
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrCompilation
import org.jetbrains.kotlin.gradle.targets.js.npm.KotlinNpmResolutionManager import org.jetbrains.kotlin.gradle.targets.js.npm.KotlinNpmResolutionManager
import org.jetbrains.kotlin.gradle.targets.js.npm.resolved.KotlinProjectNpmResolution import org.jetbrains.kotlin.gradle.targets.js.npm.resolved.KotlinProjectNpmResolution
import java.io.Serializable import java.io.Serializable
@@ -30,7 +30,7 @@ class KotlinProjectNpmResolver(
private val byCompilation = mutableMapOf<String, KotlinCompilationNpmResolver>() private val byCompilation = mutableMapOf<String, KotlinCompilationNpmResolver>()
operator fun get(compilation: KotlinJsCompilation): KotlinCompilationNpmResolver { operator fun get(compilation: KotlinJsIrCompilation): KotlinCompilationNpmResolver {
return byCompilation[compilation.disambiguatedName] ?: error("$compilation was not registered in $this") return byCompilation[compilation.disambiguatedName] ?: error("$compilation was not registered in $this")
} }
@@ -67,7 +67,7 @@ class KotlinProjectNpmResolver(
target.platformType == KotlinPlatformType.wasm target.platformType == KotlinPlatformType.wasm
) { ) {
target.compilations.all { compilation -> target.compilations.all { compilation ->
if (compilation is KotlinJsCompilation) { if (compilation is KotlinJsIrCompilation) {
// compilation may be KotlinWithJavaTarget for old Kotlin2JsPlugin // compilation may be KotlinWithJavaTarget for old Kotlin2JsPlugin
addCompilation(compilation) addCompilation(compilation)
} }
@@ -76,7 +76,7 @@ class KotlinProjectNpmResolver(
} }
@Synchronized @Synchronized
private fun addCompilation(compilation: KotlinJsCompilation) { private fun addCompilation(compilation: KotlinJsIrCompilation) {
check(resolution == null) { resolver.alreadyResolvedMessage("add compilation $compilation") } check(resolution == null) { resolver.alreadyResolvedMessage("add compilation $compilation") }
byCompilation[compilation.disambiguatedName] = byCompilation[compilation.disambiguatedName] =
@@ -7,10 +7,10 @@ package org.jetbrains.kotlin.gradle.targets.js.npm.resolver
import org.gradle.api.Project import org.gradle.api.Project
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
import org.jetbrains.kotlin.gradle.plugin.mpp.isMain import org.jetbrains.kotlin.gradle.plugin.mpp.isMain
import org.jetbrains.kotlin.gradle.targets.js.KotlinWasmTargetType import org.jetbrains.kotlin.gradle.targets.js.KotlinWasmTargetType
import org.jetbrains.kotlin.gradle.targets.js.NpmVersions import org.jetbrains.kotlin.gradle.targets.js.NpmVersions
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrCompilation
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTarget import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTarget
import org.jetbrains.kotlin.gradle.targets.js.nodejs.TasksRequirements import org.jetbrains.kotlin.gradle.targets.js.nodejs.TasksRequirements
import org.jetbrains.kotlin.gradle.targets.js.npm.resolved.KotlinRootNpmResolution import org.jetbrains.kotlin.gradle.targets.js.npm.resolved.KotlinRootNpmResolution
@@ -43,7 +43,7 @@ class KotlinRootNpmResolver internal constructor(
internal operator fun get(projectPath: String) = internal operator fun get(projectPath: String) =
projectResolvers[projectPath] ?: error("$projectPath is not configured for JS usage") projectResolvers[projectPath] ?: error("$projectPath is not configured for JS usage")
val compilations: Collection<KotlinJsCompilation> val compilations: Collection<KotlinJsIrCompilation>
get() = projectResolvers.values.flatMap { it.compilationResolvers.map { it.compilation } } get() = projectResolvers.values.flatMap { it.compilationResolvers.map { it.compilation } }
internal fun findDependentResolver(src: Project, target: Project): List<KotlinCompilationNpmResolver>? { internal fun findDependentResolver(src: Project, target: Project): List<KotlinCompilationNpmResolver>? {
@@ -67,7 +67,7 @@ class KotlinRootNpmResolver internal constructor(
check(mainCompilations.size <= maxMainCompilationsCount) { errorMessage } check(mainCompilations.size <= maxMainCompilationsCount) { errorMessage }
for (npmResolver in mainCompilations) { for (npmResolver in mainCompilations) {
when (val compilation = npmResolver.compilation) { when (val compilation = npmResolver.compilation) {
is KotlinJsCompilation -> { is KotlinJsIrCompilation -> {
if (compilation.platformType == KotlinPlatformType.wasm) { if (compilation.platformType == KotlinPlatformType.wasm) {
val jsTarget = compilation.target as KotlinJsIrTarget val jsTarget = compilation.target as KotlinJsIrTarget
if (jsTarget.wasmTargetType == KotlinWasmTargetType.JS) { if (jsTarget.wasmTargetType == KotlinWasmTargetType.JS) {
@@ -14,7 +14,7 @@ import org.gradle.api.provider.Provider
import org.gradle.api.tasks.* import org.gradle.api.tasks.*
import org.gradle.work.DisableCachingByDefault import org.gradle.work.DisableCachingByDefault
import org.gradle.work.NormalizeLineEndings import org.gradle.work.NormalizeLineEndings
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrCompilation
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin.Companion.kotlinNodeJsExtension import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin.Companion.kotlinNodeJsExtension
@@ -123,7 +123,7 @@ abstract class KotlinPackageJsonTask :
} }
companion object { companion object {
fun create(compilation: KotlinJsCompilation): TaskProvider<KotlinPackageJsonTask> { fun create(compilation: KotlinJsIrCompilation): TaskProvider<KotlinPackageJsonTask> {
val target = compilation.target val target = compilation.target
val project = target.project val project = target.project
val npmProject = compilation.npmProject val npmProject = compilation.npmProject
@@ -14,15 +14,12 @@ import org.gradle.process.internal.DefaultProcessForkOptions
import org.gradle.work.DisableCachingByDefault import org.gradle.work.DisableCachingByDefault
import org.gradle.work.NormalizeLineEndings import org.gradle.work.NormalizeLineEndings
import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesTestExecutionSpec import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesTestExecutionSpec
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
import org.jetbrains.kotlin.gradle.targets.js.RequiredKotlinJsDependency import org.jetbrains.kotlin.gradle.targets.js.RequiredKotlinJsDependency
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrCompilation
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin.Companion.kotlinNodeJsExtension import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin.Companion.kotlinNodeJsExtension
import org.jetbrains.kotlin.gradle.targets.js.npm.RequiresNpmDependencies import org.jetbrains.kotlin.gradle.targets.js.npm.RequiresNpmDependencies
import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject
import org.jetbrains.kotlin.gradle.targets.js.testing.karma.KotlinKarma import org.jetbrains.kotlin.gradle.targets.js.testing.karma.KotlinKarma
import org.jetbrains.kotlin.gradle.targets.js.testing.mocha.KotlinMocha import org.jetbrains.kotlin.gradle.targets.js.testing.mocha.KotlinMocha
import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpack
import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig
import org.jetbrains.kotlin.gradle.tasks.KotlinTest import org.jetbrains.kotlin.gradle.tasks.KotlinTest
import org.jetbrains.kotlin.gradle.utils.getValue import org.jetbrains.kotlin.gradle.utils.getValue
import org.jetbrains.kotlin.gradle.utils.newFileProperty import org.jetbrains.kotlin.gradle.utils.newFileProperty
@@ -34,7 +31,7 @@ abstract class KotlinJsTest
constructor( constructor(
@Transient @Transient
@Internal @Internal
override var compilation: KotlinJsCompilation override var compilation: KotlinJsIrCompilation
) : KotlinTest(), ) : KotlinTest(),
RequiresNpmDependencies { RequiresNpmDependencies {
@Transient @Transient
@@ -10,11 +10,11 @@ import org.gradle.process.ProcessForkOptions
import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesClientSettings import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesClientSettings
import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesTestExecutionSpec import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesTestExecutionSpec
import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesTestExecutor import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesTestExecutor
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
import org.jetbrains.kotlin.gradle.targets.js.RequiredKotlinJsDependency import org.jetbrains.kotlin.gradle.targets.js.RequiredKotlinJsDependency
import org.jetbrains.kotlin.gradle.targets.js.addWasmExperimentalArguments import org.jetbrains.kotlin.gradle.targets.js.addWasmExperimentalArguments
import org.jetbrains.kotlin.gradle.targets.js.d8.D8RootPlugin import org.jetbrains.kotlin.gradle.targets.js.d8.D8RootPlugin
import org.jetbrains.kotlin.gradle.targets.js.internal.parseNodeJsStackTraceAsJvm import org.jetbrains.kotlin.gradle.targets.js.internal.parseNodeJsStackTraceAsJvm
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrCompilation
import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject
import org.jetbrains.kotlin.gradle.targets.js.writeWasmUnitTestRunner import org.jetbrains.kotlin.gradle.targets.js.writeWasmUnitTestRunner
import org.jetbrains.kotlin.gradle.utils.doNotTrackStateCompat import org.jetbrains.kotlin.gradle.utils.doNotTrackStateCompat
@@ -24,7 +24,7 @@ import java.nio.file.Path
internal class KotlinWasmD8(private val kotlinJsTest: KotlinJsTest) : KotlinJsTestFramework { internal class KotlinWasmD8(private val kotlinJsTest: KotlinJsTest) : KotlinJsTestFramework {
override val settingsState: String = "KotlinWasmD8" override val settingsState: String = "KotlinWasmD8"
@Transient @Transient
override val compilation: KotlinJsCompilation = kotlinJsTest.compilation override val compilation: KotlinJsIrCompilation = kotlinJsTest.compilation
@Transient @Transient
private val project: Project = compilation.target.project private val project: Project = compilation.target.project
@@ -10,11 +10,11 @@ import org.gradle.process.ProcessForkOptions
import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesClientSettings import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesClientSettings
import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesTestExecutionSpec import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesTestExecutionSpec
import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesTestExecutor import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesTestExecutor
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
import org.jetbrains.kotlin.gradle.targets.js.KotlinWasmTargetType import org.jetbrains.kotlin.gradle.targets.js.KotlinWasmTargetType
import org.jetbrains.kotlin.gradle.targets.js.RequiredKotlinJsDependency import org.jetbrains.kotlin.gradle.targets.js.RequiredKotlinJsDependency
import org.jetbrains.kotlin.gradle.targets.js.addWasmExperimentalArguments import org.jetbrains.kotlin.gradle.targets.js.addWasmExperimentalArguments
import org.jetbrains.kotlin.gradle.targets.js.internal.parseNodeJsStackTraceAsJvm import org.jetbrains.kotlin.gradle.targets.js.internal.parseNodeJsStackTraceAsJvm
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrCompilation
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTarget import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTarget
import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject
import org.jetbrains.kotlin.gradle.targets.js.writeWasmUnitTestRunner import org.jetbrains.kotlin.gradle.targets.js.writeWasmUnitTestRunner
@@ -25,7 +25,7 @@ import java.nio.file.Path
internal class KotlinWasmNode(private val kotlinJsTest: KotlinJsTest) : KotlinJsTestFramework { internal class KotlinWasmNode(private val kotlinJsTest: KotlinJsTest) : KotlinJsTestFramework {
override val settingsState: String = "KotlinWasmNode" override val settingsState: String = "KotlinWasmNode"
@Transient @Transient
override val compilation: KotlinJsCompilation = kotlinJsTest.compilation override val compilation: KotlinJsIrCompilation = kotlinJsTest.compilation
private val isTeamCity = compilation.target.project.providers.gradleProperty(TCServiceMessagesTestExecutor.TC_PROJECT_PROPERTY) private val isTeamCity = compilation.target.project.providers.gradleProperty(TCServiceMessagesTestExecutor.TC_PROJECT_PROPERTY)
@Transient @Transient
@@ -23,12 +23,12 @@ import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesTestExecuto
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.Companion.kotlinPropertiesProvider import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.Companion.kotlinPropertiesProvider
import org.jetbrains.kotlin.gradle.plugin.internal.MppTestReportHelper import org.jetbrains.kotlin.gradle.plugin.internal.MppTestReportHelper
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
import org.jetbrains.kotlin.gradle.targets.js.NpmPackageVersion import org.jetbrains.kotlin.gradle.targets.js.NpmPackageVersion
import org.jetbrains.kotlin.gradle.targets.js.RequiredKotlinJsDependency import org.jetbrains.kotlin.gradle.targets.js.RequiredKotlinJsDependency
import org.jetbrains.kotlin.gradle.targets.js.appendConfigsFromDir import org.jetbrains.kotlin.gradle.targets.js.appendConfigsFromDir
import org.jetbrains.kotlin.gradle.targets.js.dsl.WebpackRulesDsl.Companion.webpackRulesContainer import org.jetbrains.kotlin.gradle.targets.js.dsl.WebpackRulesDsl.Companion.webpackRulesContainer
import org.jetbrains.kotlin.gradle.targets.js.internal.parseNodeJsStackTraceAsJvm import org.jetbrains.kotlin.gradle.targets.js.internal.parseNodeJsStackTraceAsJvm
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrCompilation
import org.jetbrains.kotlin.gradle.targets.js.jsQuoted import org.jetbrains.kotlin.gradle.targets.js.jsQuoted
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin.Companion.kotlinNodeJsExtension import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin.Companion.kotlinNodeJsExtension
import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject
@@ -44,7 +44,7 @@ import java.io.File
import java.nio.file.Path import java.nio.file.Path
class KotlinKarma( class KotlinKarma(
@Transient override val compilation: KotlinJsCompilation, @Transient override val compilation: KotlinJsIrCompilation,
private val services: () -> ServiceRegistry, private val services: () -> ServiceRegistry,
private val basePath: String, private val basePath: String,
) : KotlinJsTestFramework { ) : KotlinJsTestFramework {
@@ -11,10 +11,9 @@ import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesClientSetti
import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesTestExecutionSpec import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesTestExecutionSpec
import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesTestExecutor import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesTestExecutor
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
import org.jetbrains.kotlin.gradle.targets.js.RequiredKotlinJsDependency import org.jetbrains.kotlin.gradle.targets.js.RequiredKotlinJsDependency
import org.jetbrains.kotlin.gradle.targets.js.internal.parseNodeJsStackTraceAsJvm import org.jetbrains.kotlin.gradle.targets.js.internal.parseNodeJsStackTraceAsJvm
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrCompilation
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin.Companion.kotlinNodeJsExtension import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin.Companion.kotlinNodeJsExtension
import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject
import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest
@@ -23,7 +22,7 @@ import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinTestRunnerCliArgs
import org.jetbrains.kotlin.gradle.utils.getValue import org.jetbrains.kotlin.gradle.utils.getValue
import java.nio.file.Path import java.nio.file.Path
class KotlinMocha(@Transient override val compilation: KotlinJsCompilation, private val basePath: String) : class KotlinMocha(@Transient override val compilation: KotlinJsIrCompilation, private val basePath: String) :
KotlinJsTestFramework { KotlinJsTestFramework {
@Transient @Transient
private val project: Project = compilation.target.project private val project: Project = compilation.target.project
@@ -12,9 +12,9 @@ import org.gradle.api.tasks.*
import org.gradle.work.DisableCachingByDefault import org.gradle.work.DisableCachingByDefault
import org.gradle.work.NormalizeLineEndings import org.gradle.work.NormalizeLineEndings
import org.jetbrains.kotlin.gradle.internal.execWithProgress import org.jetbrains.kotlin.gradle.internal.execWithProgress
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
import org.jetbrains.kotlin.gradle.targets.js.RequiredKotlinJsDependency import org.jetbrains.kotlin.gradle.targets.js.RequiredKotlinJsDependency
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinIrJsGeneratedTSValidationStrategy import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinIrJsGeneratedTSValidationStrategy
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrCompilation
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin.Companion.kotlinNodeJsExtension import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin.Companion.kotlinNodeJsExtension
import org.jetbrains.kotlin.gradle.targets.js.npm.RequiresNpmDependencies import org.jetbrains.kotlin.gradle.targets.js.npm.RequiresNpmDependencies
import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject
@@ -26,7 +26,7 @@ abstract class TypeScriptValidationTask
constructor( constructor(
@Internal @Internal
@Transient @Transient
override val compilation: KotlinJsCompilation override val compilation: KotlinJsIrCompilation
) : DefaultTask(), RequiresNpmDependencies { ) : DefaultTask(), RequiresNpmDependencies {
private val npmProject = compilation.npmProject private val npmProject = compilation.npmProject
@@ -24,13 +24,13 @@ import org.gradle.process.internal.ExecHandleFactory
import org.gradle.work.NormalizeLineEndings import org.gradle.work.NormalizeLineEndings
import org.jetbrains.kotlin.build.report.metrics.* import org.jetbrains.kotlin.build.report.metrics.*
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
import org.jetbrains.kotlin.gradle.utils.archivesName import org.jetbrains.kotlin.gradle.utils.archivesName
import org.jetbrains.kotlin.gradle.report.UsesBuildMetricsService import org.jetbrains.kotlin.gradle.report.UsesBuildMetricsService
import org.jetbrains.kotlin.gradle.targets.js.RequiredKotlinJsDependency import org.jetbrains.kotlin.gradle.targets.js.RequiredKotlinJsDependency
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinWebpackRulesContainer import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinWebpackRulesContainer
import org.jetbrains.kotlin.gradle.targets.js.dsl.WebpackRulesDsl import org.jetbrains.kotlin.gradle.targets.js.dsl.WebpackRulesDsl
import org.jetbrains.kotlin.gradle.targets.js.dsl.WebpackRulesDsl.Companion.webpackRulesContainer import org.jetbrains.kotlin.gradle.targets.js.dsl.WebpackRulesDsl.Companion.webpackRulesContainer
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrCompilation
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin.Companion.kotlinNodeJsExtension import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin.Companion.kotlinNodeJsExtension
import org.jetbrains.kotlin.gradle.targets.js.npm.RequiresNpmDependencies import org.jetbrains.kotlin.gradle.targets.js.npm.RequiresNpmDependencies
import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject
@@ -48,7 +48,7 @@ abstract class KotlinWebpack
constructor( constructor(
@Internal @Internal
@Transient @Transient
override val compilation: KotlinJsCompilation, override val compilation: KotlinJsIrCompilation,
private val objects: ObjectFactory private val objects: ObjectFactory
) : DefaultTask(), RequiresNpmDependencies, WebpackRulesDsl, UsesBuildMetricsService { ) : DefaultTask(), RequiresNpmDependencies, WebpackRulesDsl, UsesBuildMetricsService {
@Transient @Transient
@@ -9,7 +9,6 @@ import org.jetbrains.kotlin.compilerRunner.GradleCompilerRunner
import org.jetbrains.kotlin.gradle.incremental.IncrementalModuleInfoBuildService import org.jetbrains.kotlin.gradle.incremental.IncrementalModuleInfoBuildService
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilationInfo import org.jetbrains.kotlin.gradle.plugin.KotlinCompilationInfo
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinWithJavaTarget import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinWithJavaTarget
import org.jetbrains.kotlin.gradle.plugin.tcs import org.jetbrains.kotlin.gradle.plugin.tcs
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget
@@ -129,7 +128,7 @@ internal open class BaseKotlin2JsCompileConfig<TASK : Kotlin2JsCompile>(
if (compilation.platformType == KotlinPlatformType.wasm) { if (compilation.platformType == KotlinPlatformType.wasm) {
add(WASM_BACKEND) add(WASM_BACKEND)
val wasmTargetType = ((compilation.origin as KotlinJsCompilation).target as KotlinJsIrTarget).wasmTargetType!! val wasmTargetType = ((compilation.origin as KotlinJsIrCompilation).target as KotlinJsIrTarget).wasmTargetType!!
val targetValue = if (wasmTargetType == KotlinWasmTargetType.WASI) "wasm-wasi" else "wasm-js" val targetValue = if (wasmTargetType == KotlinWasmTargetType.WASI) "wasm-wasi" else "wasm-js"
add("$WASM_TARGET=$targetValue") add("$WASM_TARGET=$targetValue")
} }
@@ -8,7 +8,6 @@ package org.jetbrains.kotlin.gradle.tasks.configuration
import org.gradle.api.InvalidUserDataException import org.gradle.api.InvalidUserDataException
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilationInfo import org.jetbrains.kotlin.gradle.plugin.KotlinCompilationInfo
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
import org.jetbrains.kotlin.gradle.targets.js.KotlinWasmTargetType import org.jetbrains.kotlin.gradle.targets.js.KotlinWasmTargetType
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryMode import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryMode
import org.jetbrains.kotlin.gradle.targets.js.ir.* import org.jetbrains.kotlin.gradle.targets.js.ir.*
@@ -100,7 +99,7 @@ internal open class KotlinJsIrLinkConfig(
if (compilation.platformType == KotlinPlatformType.wasm) { if (compilation.platformType == KotlinPlatformType.wasm) {
add(WASM_BACKEND) add(WASM_BACKEND)
val wasmTargetType = ((compilation.origin as KotlinJsCompilation).target as KotlinJsIrTarget).wasmTargetType!! val wasmTargetType = ((compilation.origin as KotlinJsIrCompilation).target as KotlinJsIrTarget).wasmTargetType!!
val targetValue = if (wasmTargetType == KotlinWasmTargetType.WASI) "wasm-wasi" else "wasm-js" val targetValue = if (wasmTargetType == KotlinWasmTargetType.WASI) "wasm-wasi" else "wasm-js"
add("$WASM_TARGET=$targetValue") add("$WASM_TARGET=$targetValue")
} }