From 342c9e8c8144c3fbfd1ccc67f99eb199362e89ec Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Fri, 17 Nov 2023 10:25:21 +0000 Subject: [PATCH] [Gradle, JS] Set compiler arg ir and produce-* unconditionally ^KT-63312 fixed --- .../kotlin/gradle/Kotlin2JsGradlePluginIT.kt | 12 -- .../KotlinJsIncrementalGradlePluginIT.kt | 16 +-- .../internal/LibraryFilterCachingService.kt | 2 +- .../gradle/targets/js/ir/CompilerFlags.kt | 5 - .../gradle/targets/js/ir/KotlinJsIrLink.kt | 9 +- .../gradle/targets/js/ir/KotlinJsIrTarget.kt | 4 +- .../js/ir/KotlinJsIrTargetConfigurator.kt | 15 +-- .../kotlin/gradle/tasks/Kotlin2JsCompile.kt | 106 ++++-------------- .../jetbrains/kotlin/gradle/tasks/Tasks.kt | 1 - .../configuration/Kotlin2JsCompileConfig.kt | 32 ++---- .../configuration/KotlinJsIrLinkConfig.kt | 2 - 11 files changed, 43 insertions(+), 161 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kotlin2JsGradlePluginIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kotlin2JsGradlePluginIT.kt index 23588ce4b0d..d09144ae502 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kotlin2JsGradlePluginIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kotlin2JsGradlePluginIT.kt @@ -18,7 +18,6 @@ import org.jetbrains.kotlin.gradle.targets.js.npm.fromSrcPackageJson import org.jetbrains.kotlin.gradle.targets.js.yarn.YarnLockCopyTask.Companion.STORE_YARN_LOCK_NAME import org.jetbrains.kotlin.gradle.targets.js.yarn.YarnLockCopyTask.Companion.UPGRADE_YARN_LOCK import org.jetbrains.kotlin.gradle.targets.js.yarn.YarnLockCopyTask.Companion.YARN_LOCK_MISMATCH_MESSAGE -import org.jetbrains.kotlin.gradle.tasks.USING_JS_IR_BACKEND_MESSAGE import org.jetbrains.kotlin.gradle.testbase.* import org.jetbrains.kotlin.gradle.testbase.TestVersions.Gradle.G_7_6 import org.jetbrains.kotlin.gradle.util.replaceText @@ -40,8 +39,6 @@ class Kotlin2JsIrGradlePluginIT : KGPBaseTest() { fun generateDts(gradleVersion: GradleVersion) { project("kotlin2JsIrDtsGeneration", gradleVersion) { build("build") { - checkIrCompilationMessage() - assertFileInProjectExists("build/js/packages/kotlin2JsIrDtsGeneration/kotlin/kotlin2JsIrDtsGeneration.js") val dts = projectPath.resolve("build/js/packages/kotlin2JsIrDtsGeneration/kotlin/kotlin2JsIrDtsGeneration.d.ts") assertFileExists(dts) @@ -747,17 +744,11 @@ class Kotlin2JsIrGradlePluginIT : KGPBaseTest() { } } - protected fun BuildResult.checkIrCompilationMessage() { - assertOutputContains(USING_JS_IR_BACKEND_MESSAGE) - } - @DisplayName("test compilation can access main compilation") @GradleTest fun testCompileTestCouldAccessProduction(gradleVersion: GradleVersion) { project("kotlin2JsProjectWithTests", gradleVersion) { build("build") { - checkIrCompilationMessage() - assertTasksExecuted( ":compileKotlinJs", ":compileTestKotlinJs" @@ -774,7 +765,6 @@ class Kotlin2JsIrGradlePluginIT : KGPBaseTest() { fun testCompilerTestAccessInternalProduction(gradleVersion: GradleVersion) { project("kotlin2JsInternalTest", gradleVersion) { build("build") { - checkIrCompilationMessage() } } } @@ -1180,8 +1170,6 @@ class Kotlin2JsIrGradlePluginIT : KGPBaseTest() { fun testNodeJsForkOptions(gradleVersion: GradleVersion) { project("kotlin-js-nodejs-custom-node-module", gradleVersion) { build("build") { - checkIrCompilationMessage() - // It makes sense only since Tests will be run on Gradle 7.2 assertOutputDoesNotContain("Execution optimizations have been disabled for task ':nodeTest'") diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinJsIncrementalGradlePluginIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinJsIncrementalGradlePluginIT.kt index 8e076a8fc74..ca5635382df 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinJsIncrementalGradlePluginIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinJsIncrementalGradlePluginIT.kt @@ -9,7 +9,6 @@ import org.gradle.api.logging.LogLevel import org.gradle.testkit.runner.BuildResult import org.gradle.util.GradleVersion import org.jetbrains.kotlin.gradle.tasks.USING_JS_INCREMENTAL_COMPILATION_MESSAGE -import org.jetbrains.kotlin.gradle.tasks.USING_JS_IR_BACKEND_MESSAGE import org.jetbrains.kotlin.gradle.testbase.* import org.junit.jupiter.api.DisplayName @@ -36,21 +35,12 @@ abstract class AbstractKotlinJsIncrementalGradlePluginIT( jsOptions = defaultJsOptions, ) - protected fun BuildResult.checkIrCompilationMessage() { - if (irBackend) { - assertOutputContains(USING_JS_IR_BACKEND_MESSAGE) - } else { - assertOutputDoesNotContain(USING_JS_IR_BACKEND_MESSAGE) - } - } - @DisplayName("incremental compilation for js works") @GradleTest fun testIncrementalCompilation(gradleVersion: GradleVersion) { val buildOptions = defaultBuildOptions.copy(logLevel = LogLevel.DEBUG) project("kotlin2JsICProject", gradleVersion, buildOptions = buildOptions) { build("compileKotlinJs", "compileTestKotlinJs") { - checkIrCompilationMessage() assertOutputContains(USING_JS_INCREMENTAL_COMPILATION_MESSAGE) assertCompiledKotlinSources(projectPath.allKotlinFiles.relativizeTo(projectPath), output) } @@ -64,7 +54,6 @@ abstract class AbstractKotlinJsIncrementalGradlePluginIT( it.replace("val x = 0", "val x = \"a\"") } build("compileKotlinJs", "compileTestKotlinJs") { - checkIrCompilationMessage() assertOutputContains(USING_JS_INCREMENTAL_COMPILATION_MESSAGE) val affectedFiles = listOf("A.kt", "useAInLibMain.kt", "useAInAppMain.kt", "useAInAppTest.kt").mapNotNull { projectPath.findInPath(it) @@ -77,13 +66,10 @@ abstract class AbstractKotlinJsIncrementalGradlePluginIT( @DisplayName("non-incremental compilation works") @GradleTest fun testIncrementalCompilationDisabled(gradleVersion: GradleVersion) { - val jsOptions = defaultJsOptions.run { - if (irBackend) copy(incrementalJsKlib = false) else copy(incrementalJs = false) - } + val jsOptions = defaultJsOptions.copy(incrementalJsKlib = false, incrementalJs = false) val options = defaultBuildOptions.copy(jsOptions = jsOptions) project("kotlin2JsICProject", gradleVersion, buildOptions = options) { build("compileKotlinJs", "compileTestKotlinJs") { - checkIrCompilationMessage() assertOutputDoesNotContain(USING_JS_INCREMENTAL_COMPILATION_MESSAGE) } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/internal/LibraryFilterCachingService.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/internal/LibraryFilterCachingService.kt index 84e9b6f9f26..0a06f88bf2e 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/internal/LibraryFilterCachingService.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/internal/LibraryFilterCachingService.kt @@ -23,7 +23,7 @@ internal interface UsesLibraryFilterCachingService : Task { } internal abstract class LibraryFilterCachingService : BuildService, AutoCloseable { - internal data class LibraryFilterCacheKey(val dependency: File, val irEnabled: Boolean, val preIrDisabled: Boolean) + internal data class LibraryFilterCacheKey(val dependency: File) private val cache = ConcurrentHashMap() diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/CompilerFlags.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/CompilerFlags.kt index 489a44fc1ca..0015c56df3c 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/CompilerFlags.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/CompilerFlags.kt @@ -9,16 +9,11 @@ package org.jetbrains.kotlin.gradle.targets.js.ir * @see [compiler/testData/cli/js/jsExtraHelp.out] */ -internal const val ENTRY_IR_MODULE = "-Xinclude" - -internal const val DISABLE_PRE_IR = "-Xir-only" internal const val ENABLE_DCE = "-Xir-dce" internal const val GENERATE_D_TS = "-Xgenerate-dts" -internal const val PRODUCE_JS = "-Xir-produce-js" internal const val PRODUCE_UNZIPPED_KLIB = "-Xir-produce-klib-dir" -internal const val PRODUCE_ZIPPED_KLIB = "-Xir-produce-klib-file" internal const val MINIMIZED_MEMBER_NAMES = "-Xir-minimized-member-names" diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrLink.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrLink.kt index 3520886fb86..e077f3ef199 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrLink.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrLink.kt @@ -58,7 +58,7 @@ abstract class KotlinJsIrLink @Inject constructor( internal val propertiesProvider = PropertiesProvider(project) @get:Input - internal val incrementalJsIr: Boolean = propertiesProvider.incrementalJsIr + var incrementalJsIr: Boolean = propertiesProvider.incrementalJsIr @get:Input val outputGranularity: KotlinJsIrOutputGranularity = propertiesProvider.jsIrOutputGranularity @@ -96,10 +96,13 @@ abstract class KotlinJsIrLink @Inject constructor( } } - override fun contributeAdditionalCompilerArguments(context: ContributeCompilerArgumentsContext) { - super.contributeAdditionalCompilerArguments(context) + override fun isIncrementalCompilationEnabled(): Boolean = false + override fun contributeAdditionalCompilerArguments(context: ContributeCompilerArgumentsContext) { context.primitive { args -> + args.irOnly = true + args.irProduceJs = true + // moduleName can start with @ for group of NPM packages // but args parsing @ as start of argfile // so WA we provide moduleName as one parameter diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTarget.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTarget.kt index e700ca7e444..f22508db5a2 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTarget.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTarget.kt @@ -464,9 +464,7 @@ constructor( internal override val compilerOptions: KotlinJsCompilerOptions = project.objects .newInstance() .apply { - configureJsDefaultOptions(platformType) - - freeCompilerArgs.add(DISABLE_PRE_IR) + configureJsDefaultOptions() } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTargetConfigurator.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTargetConfigurator.kt index 57a70fb88cd..f32f6c2ac68 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTargetConfigurator.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTargetConfigurator.kt @@ -9,22 +9,15 @@ import org.jetbrains.kotlin.gradle.dsl.JsModuleKind import org.jetbrains.kotlin.gradle.dsl.JsSourceMapEmbedMode import org.jetbrains.kotlin.gradle.dsl.KotlinJsCompilerOptions import org.jetbrains.kotlin.gradle.plugin.KotlinOnlyTargetConfigurator -import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType open class KotlinJsIrTargetConfigurator : KotlinOnlyTargetConfigurator(true) { internal companion object { - internal fun KotlinJsCompilerOptions.configureJsDefaultOptions( - platformType: KotlinPlatformType, - ) { - moduleKind.set(JsModuleKind.MODULE_UMD) - sourceMap.set(true) - sourceMapEmbedSources.set(JsSourceMapEmbedMode.SOURCE_MAP_SOURCE_CONTENT_NEVER) - - if (platformType == KotlinPlatformType.wasm) { - freeCompilerArgs.add(WASM_BACKEND) - } + internal fun KotlinJsCompilerOptions.configureJsDefaultOptions() { + moduleKind.convention(JsModuleKind.MODULE_UMD) + sourceMap.convention(true) + sourceMapEmbedSources.convention(JsSourceMapEmbedMode.SOURCE_MAP_SOURCE_CONTENT_NEVER) } } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/Kotlin2JsCompile.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/Kotlin2JsCompile.kt index f09d75ab411..52442374773 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/Kotlin2JsCompile.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/Kotlin2JsCompile.kt @@ -35,10 +35,6 @@ import org.jetbrains.kotlin.gradle.plugin.statistics.UsesBuildFusService import org.jetbrains.kotlin.gradle.report.BuildReportMode import org.jetbrains.kotlin.gradle.targets.js.internal.LibraryFilterCachingService import org.jetbrains.kotlin.gradle.targets.js.internal.UsesLibraryFilterCachingService -import org.jetbrains.kotlin.gradle.targets.js.ir.DISABLE_PRE_IR -import org.jetbrains.kotlin.gradle.targets.js.ir.PRODUCE_JS -import org.jetbrains.kotlin.gradle.targets.js.ir.PRODUCE_UNZIPPED_KLIB -import org.jetbrains.kotlin.gradle.targets.js.ir.PRODUCE_ZIPPED_KLIB import org.jetbrains.kotlin.gradle.tasks.internal.KotlinJsOptionsCompat import org.jetbrains.kotlin.gradle.utils.getFile import org.jetbrains.kotlin.gradle.utils.isParentOf @@ -47,7 +43,6 @@ import org.jetbrains.kotlin.gradle.utils.toPathsArray import org.jetbrains.kotlin.incremental.ClasspathChanges import org.jetbrains.kotlin.library.impl.isKotlinLibrary import org.jetbrains.kotlin.statistics.metrics.BooleanMetrics -import org.jetbrains.kotlin.utils.JsLibraryUtils import java.io.File import javax.inject.Inject @@ -77,26 +72,11 @@ abstract class Kotlin2JsCompile @Inject constructor( internal var incrementalJsKlib: Boolean = true override fun isIncrementalCompilationEnabled(): Boolean { - val freeArgs = enhancedFreeCompilerArgs.get() - return when { - PRODUCE_JS in freeArgs -> false - - PRODUCE_UNZIPPED_KLIB in freeArgs -> { - buildFusService.orNull?.reportFusMetrics { - it.report(BooleanMetrics.JS_KLIB_INCREMENTAL, incrementalJsKlib) - } - incrementalJsKlib - } - - PRODUCE_ZIPPED_KLIB in freeArgs -> { - buildFusService.orNull?.reportFusMetrics { - it.report(BooleanMetrics.JS_KLIB_INCREMENTAL, incrementalJsKlib) - } - incrementalJsKlib - } - - else -> incremental + val result = incrementalJsKlib || incremental + buildFusService.orNull?.reportFusMetrics { + it.report(BooleanMetrics.JS_KLIB_INCREMENTAL, result) } + return result } // Workaround to be able to use default value and change it later based on external input @@ -148,18 +128,14 @@ abstract class Kotlin2JsCompile @Inject constructor( KotlinJsCompilerOptionsHelper.fillCompilerArguments(compilerOptions, args) - if (isIrBackendEnabled()) { - val outputFilePath: String? = compilerOptions.outputFile.orNull - if (outputFilePath != null) { - val outputFile = File(outputFilePath) - args.outputDir = (if (outputFile.extension == "") outputFile else outputFile.parentFile).normalize().absolutePath - args.moduleName = outputFile.nameWithoutExtension - } else { - args.outputDir = destinationDirectory.get().asFile.normalize().absolutePath - args.moduleName = compilerOptions.moduleName.get() - } + val outputFilePath: String? = compilerOptions.outputFile.orNull + if (outputFilePath != null) { + val outputFile = File(outputFilePath) + args.outputDir = (if (outputFile.extension == "") outputFile else outputFile.parentFile).normalize().absolutePath + args.moduleName = outputFile.nameWithoutExtension } else { - args.outputFile = outputFileProperty.get().absoluteFile.normalize().absolutePath + args.outputDir = destinationDirectory.get().asFile.normalize().absolutePath + args.moduleName = compilerOptions.moduleName.get() } if (compilerOptions.usesK2.get()) { @@ -228,58 +204,15 @@ abstract class Kotlin2JsCompile @Inject constructor( .directoryProperty() .value(project.layout.projectDirectory) - private fun isHybridKotlinJsLibrary(file: File): Boolean = - JsLibraryUtils.isKotlinJavascriptLibrary(file) && isKotlinLibrary(file) - - private val preIrBackendCompilerFlags = listOf( - DISABLE_PRE_IR, - PRODUCE_JS, - PRODUCE_ZIPPED_KLIB - ) - - private fun isPreIrBackendDisabled(): Boolean = enhancedFreeCompilerArgs - .get() - .any { preIrBackendCompilerFlags.contains(it) } - - // see also isIncrementalCompilationEnabled - private val irBackendCompilerFlags = listOf( - PRODUCE_UNZIPPED_KLIB, - PRODUCE_JS, - PRODUCE_ZIPPED_KLIB - ) - - private fun isIrBackendEnabled(): Boolean = enhancedFreeCompilerArgs - .get() - .any { irBackendCompilerFlags.contains(it) } - private val File.asLibraryFilterCacheKey: LibraryFilterCachingService.LibraryFilterCacheKey get() = LibraryFilterCachingService.LibraryFilterCacheKey( - this, - irEnabled = isIrBackendEnabled(), - preIrDisabled = isPreIrBackendDisabled() + this ) - // Kotlin/JS can operate in 3 modes: - // 1) purely pre-IR backend - // 2) purely IR backend - // 3) hybrid pre-IR and IR backend. Can only accept libraries with both JS and IR parts. - private val libraryFilterBody: (File) -> Boolean - get() = if (isIrBackendEnabled()) { - if (isPreIrBackendDisabled()) { - //::isKotlinLibrary - // Workaround for KT-47797 - { isKotlinLibrary(it) } - } else { - ::isHybridKotlinJsLibrary - } - } else { - JsLibraryUtils::isKotlinJavascriptLibrary - } - @get:Internal protected val libraryFilter: (File) -> Boolean get() = { file -> - libraryFilterCacheService.get().getOrCompute(file.asLibraryFilterCacheKey, libraryFilterBody) + libraryFilterCacheService.get().getOrCompute(file.asLibraryFilterCacheKey, ::isKotlinLibrary) } override val incrementalProps: List @@ -287,21 +220,22 @@ abstract class Kotlin2JsCompile @Inject constructor( protected open fun processArgsBeforeCompile(args: K2JSCompilerArguments) = Unit - protected open fun contributeAdditionalCompilerArguments(context: ContributeCompilerArgumentsContext) = Unit + protected open fun contributeAdditionalCompilerArguments(context: ContributeCompilerArgumentsContext) { + context.primitive { args -> + args.irOnly = true + args.irProduceKlibDir = true + } + } override fun callCompilerAsync( args: K2JSCompilerArguments, inputChanges: InputChanges, - taskOutputsBackup: TaskOutputsBackup? + taskOutputsBackup: TaskOutputsBackup?, ) { logger.debug("Calling compiler") validateOutputDirectory() - if (isIrBackendEnabled()) { - logger.info(USING_JS_IR_BACKEND_MESSAGE) - } - val dependencies = libraries .filter { it.exists() && libraryFilter(it) } .map { it.normalize().absolutePath } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt index 8bbffd804e8..c1e2ae39948 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt @@ -11,7 +11,6 @@ import org.gradle.api.tasks.TaskProvider const val KOTLIN_BUILD_DIR_NAME = "kotlin" const val USING_JVM_INCREMENTAL_COMPILATION_MESSAGE = "Using Kotlin/JVM incremental compilation" const val USING_JS_INCREMENTAL_COMPILATION_MESSAGE = "Using Kotlin/JS incremental compilation" -const val USING_JS_IR_BACKEND_MESSAGE = "Using Kotlin/JS IR backend" internal inline val T.thisTaskProvider: TaskProvider get() = checkNotNull(project.locateTask(name)) \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/Kotlin2JsCompileConfig.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/Kotlin2JsCompileConfig.kt index 992a0d19dcf..b8763c4e06f 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/Kotlin2JsCompileConfig.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/Kotlin2JsCompileConfig.kt @@ -23,7 +23,7 @@ import java.io.File internal typealias Kotlin2JsCompileConfig = BaseKotlin2JsCompileConfig internal open class BaseKotlin2JsCompileConfig( - compilation: KotlinCompilationInfo + compilation: KotlinCompilationInfo, ) : AbstractKotlinCompileConfig(compilation) { init { @@ -90,7 +90,7 @@ internal open class BaseKotlin2JsCompileConfig( protected open fun configureAdditionalFreeCompilerArguments( task: TASK, - compilation: KotlinCompilationInfo + compilation: KotlinCompilationInfo, ) { task.enhancedFreeCompilerArgs.value( task.compilerOptions.freeCompilerArgs.map { freeArgs -> @@ -102,28 +102,16 @@ internal open class BaseKotlin2JsCompileConfig( } protected fun MutableList.commonJsAdditionalCompilerFlags( - compilation: KotlinCompilationInfo + compilation: KotlinCompilationInfo, ) { - if (contains(DISABLE_PRE_IR) && - !contains(PRODUCE_UNZIPPED_KLIB) && - !contains(PRODUCE_ZIPPED_KLIB) - ) { - add(PRODUCE_UNZIPPED_KLIB) + // Configure FQ module name to avoid cyclic dependencies in klib manifests (see KT-36721). + val baseName = if (compilation.isMain) { + project.name + } else { + "${project.name}_${compilation.compilationName}" } - - if (contains(PRODUCE_JS) || - contains(PRODUCE_UNZIPPED_KLIB) || - contains(PRODUCE_ZIPPED_KLIB) - ) { - // Configure FQ module name to avoid cyclic dependencies in klib manifests (see KT-36721). - val baseName = if (compilation.isMain) { - project.name - } else { - "${project.name}_${compilation.compilationName}" - } - if (none { it.startsWith(KLIB_MODULE_NAME) }) { - add("$KLIB_MODULE_NAME=${project.klibModuleName(baseName)}") - } + if (none { it.startsWith(KLIB_MODULE_NAME) }) { + add("$KLIB_MODULE_NAME=${project.klibModuleName(baseName)}") } if (compilation.platformType == KotlinPlatformType.wasm) { diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KotlinJsIrLinkConfig.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KotlinJsIrLinkConfig.kt index 1f5b3743203..09ba97a8b04 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KotlinJsIrLinkConfig.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/tasks/configuration/KotlinJsIrLinkConfig.kt @@ -95,8 +95,6 @@ internal open class KotlinJsIrLinkConfig( if (none { it.startsWith(arg) }) add(arg) } - add(PRODUCE_JS) - if (compilation.platformType == KotlinPlatformType.wasm) { add(WASM_BACKEND) val wasmTargetType = ((compilation.origin as KotlinJsIrCompilation).target as KotlinJsIrTarget).wasmTargetType!!