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 6fc04af00f7..135f296ae0e 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 @@ -72,6 +72,7 @@ class Kotlin2JsGradlePluginIT : BaseGradleIT() { project.build("build") { assertSuccessful() assertFileExists("build/classes/main/kotlin2JsNoOutputFileProject_main.js") + assertFileExists("build/classes/test/kotlin2JsNoOutputFileProject_test.js") } } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin2JsNoOutputFileProject/src/main/kotlin/example/Dummy.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin2JsNoOutputFileProject/src/main/kotlin/example/Dummy.kt index 22d125dc503..770b4077865 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin2JsNoOutputFileProject/src/main/kotlin/example/Dummy.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin2JsNoOutputFileProject/src/main/kotlin/example/Dummy.kt @@ -1,4 +1,6 @@ package example -class Dummy {} +class Dummy { + fun f() {} +} diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin2JsNoOutputFileProject/src/test/kotlin/example/DummyTest.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin2JsNoOutputFileProject/src/test/kotlin/example/DummyTest.kt new file mode 100644 index 00000000000..4da1441f8d4 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin2JsNoOutputFileProject/src/test/kotlin/example/DummyTest.kt @@ -0,0 +1,8 @@ +package example + +class DummyTest { + fun test() { + Dummy().f() + } +} + diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt index f6fc4fbf3a2..a39fc735a3a 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt @@ -320,8 +320,8 @@ open class Kotlin2JsCompile() : AbstractKotlinCompile(), get() = File(destinationDir, "$moduleName.js") @Suppress("unused") - val outputFile: String? - get() = kotlinOptions.outputFile + val outputFile: String + get() = kotlinOptions.outputFile ?: defaultOutputFile.canonicalPath init { @Suppress("LeakingThis") @@ -330,6 +330,8 @@ open class Kotlin2JsCompile() : AbstractKotlinCompile(), override fun populateCompilerArguments(): K2JSCompilerArguments { val args = K2JSCompilerArguments().apply { fillDefaultValues() } + args.outputFile = outputFile + val friendDependency = friendTaskName ?.let { project.getTasksByName(it, false).singleOrNull() as? Kotlin2JsCompile } ?.outputFile @@ -359,10 +361,6 @@ open class Kotlin2JsCompile() : AbstractKotlinCompile(), destinationDir.mkdirs() args.freeArgs = args.freeArgs + sourceRoots.kotlinSourceFiles.map { it.absolutePath } - if (args.outputFile == null) { - args.outputFile = defaultOutputFile.canonicalPath - } - logger.kotlinDebug("compiling with args ${ArgumentUtils.convertArgumentsToStringList(args)}") val gradleVersion = getGradleVersion()