[Gradle] Fix usages of kotlinOptions in KotlinJsIrTarget

Replaced them with compiler options DSL.

^KT-63419 In Progress
This commit is contained in:
Yahor Berdnikau
2024-02-23 12:56:17 +01:00
committed by Space Team
parent 0986733f29
commit 66a39952ee
2 changed files with 24 additions and 23 deletions
@@ -612,7 +612,6 @@ class Kotlin2JsIrGradlePluginIT : KGPBaseTest() {
@GradleTest @GradleTest
fun testPackageJsonWithEsModules(gradleVersion: GradleVersion) { fun testPackageJsonWithEsModules(gradleVersion: GradleVersion) {
project("kotlin-js-browser-project", gradleVersion) { project("kotlin-js-browser-project", gradleVersion) {
buildGradleKts.modify(::transformBuildScriptWithPluginsDsl)
subProject("app").buildGradleKts.modify { subProject("app").buildGradleKts.modify {
it + """ it + """
| |
@@ -629,7 +628,7 @@ class Kotlin2JsIrGradlePluginIT : KGPBaseTest() {
Gson().fromJson(it.readText(), PackageJson::class.java) Gson().fromJson(it.readText(), PackageJson::class.java)
} }
assertEquals(packageJson.main, "kotlin/kotlin-js-browser-app.mjs") assertEquals("kotlin/kotlin-js-browser-app.mjs", packageJson.main)
} }
} }
@@ -8,9 +8,7 @@ package org.jetbrains.kotlin.gradle.targets.js.ir
import org.gradle.api.NamedDomainObjectContainer import org.gradle.api.NamedDomainObjectContainer
import org.gradle.api.Project import org.gradle.api.Project
import org.gradle.api.Task import org.gradle.api.Task
import org.gradle.api.provider.Provider
import org.gradle.api.tasks.TaskProvider import org.gradle.api.tasks.TaskProvider
import org.gradle.language.base.plugins.LifecycleBasePlugin
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
import org.jetbrains.kotlin.gradle.dsl.* import org.jetbrains.kotlin.gradle.dsl.*
import org.jetbrains.kotlin.gradle.plugin.AbstractKotlinTargetConfigurator.Companion.runTaskNameSuffix import org.jetbrains.kotlin.gradle.plugin.AbstractKotlinTargetConfigurator.Companion.runTaskNameSuffix
@@ -38,7 +36,6 @@ import org.jetbrains.kotlin.gradle.utils.*
import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly
import org.jetbrains.kotlin.util.capitalizeDecapitalize.toLowerCaseAsciiOnly import org.jetbrains.kotlin.util.capitalizeDecapitalize.toLowerCaseAsciiOnly
import org.jetbrains.kotlin.utils.addIfNotNull import org.jetbrains.kotlin.utils.addIfNotNull
import java.io.File
import javax.inject.Inject import javax.inject.Inject
abstract class KotlinJsIrTarget abstract class KotlinJsIrTarget
@@ -304,28 +301,33 @@ constructor(
} }
override fun useCommonJs() { override fun useCommonJs() {
compilations.all { compilations.configureEach { jsCompilation ->
it.kotlinOptions.configureCommonJsOptions() jsCompilation.compileTaskProvider.configure {
compilerOptions.configureCommonJsOptions()
}
it.binaries jsCompilation.binaries
.withType(JsIrBinary::class.java) .withType(JsIrBinary::class.java)
.all { .configureEach {
it.linkTask.configure { linkTask -> it.linkTask.configure { linkTask ->
linkTask.kotlinOptions.configureCommonJsOptions() linkTask.compilerOptions.configureCommonJsOptions()
} }
} }
} }
} }
override fun useEsModules() { override fun useEsModules() {
compilations.all { compilations.configureEach { jsCompilation ->
it.kotlinOptions.configureEsModulesOptions() // Here it is essential to configure compilation compiler options as npm queries
// compilation fileExtension before any task configuration action is done
@Suppress("DEPRECATION")
jsCompilation.compilerOptions.options.configureEsModulesOptions()
it.binaries jsCompilation.binaries
.withType(JsIrBinary::class.java) .withType(JsIrBinary::class.java)
.all { .configureEach {
it.linkTask.configure { linkTask -> it.linkTask.configure { linkTask ->
linkTask.kotlinOptions.configureEsModulesOptions() linkTask.compilerOptions.configureEsModulesOptions()
} }
} }
} }
@@ -346,16 +348,16 @@ constructor(
} }
} }
private fun KotlinJsOptions.configureCommonJsOptions() { private fun KotlinJsCompilerOptions.configureCommonJsOptions() {
moduleKind = "commonjs" moduleKind.convention(JsModuleKind.MODULE_COMMONJS)
sourceMap = true sourceMap.convention(true)
sourceMapEmbedSources = "never" sourceMapEmbedSources.convention(JsSourceMapEmbedMode.SOURCE_MAP_SOURCE_CONTENT_NEVER)
} }
private fun KotlinJsOptions.configureEsModulesOptions() { private fun KotlinJsCompilerOptions.configureEsModulesOptions() {
moduleKind = "es" moduleKind.convention(JsModuleKind.MODULE_ES)
sourceMap = true sourceMap.convention(true)
sourceMapEmbedSources = "never" sourceMapEmbedSources.convention(JsSourceMapEmbedMode.SOURCE_MAP_SOURCE_CONTENT_NEVER)
} }
override fun generateTypeScriptDefinitions() { override fun generateTypeScriptDefinitions() {