From a61312120b044815f79155508314f77d9e850019 Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Thu, 18 Mar 2021 15:37:19 +0300 Subject: [PATCH] [Gradle, JS] WA for tests with multiple binaries --- .../build.gradle.kts | 15 +++++++++++++++ .../js-library-with-executable/build.gradle.kts | 8 ++++++++ .../gradle/targets/js/ir/KotlinJsIrTarget.kt | 5 ++++- 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/js-library-with-executable-browser-nodejs/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/js-library-with-executable-browser-nodejs/build.gradle.kts index d7a99f6c26a..09f57685488 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/js-library-with-executable-browser-nodejs/build.gradle.kts +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/js-library-with-executable-browser-nodejs/build.gradle.kts @@ -12,9 +12,24 @@ repositories { kotlin { js { + // For now we do not recommend multiple binaries, so we test it just in case binaries.library() binaries.executable() nodejs() browser() } +} + +// We need it for suppress warnings of Gradle 7.0 +// We need to think about it, when we will support multiple binaries +tasks.named("nodeProductionLibraryPrepare") { + mustRunAfter("productionExecutableCompileSync") +} + +tasks.named("browserProductionLibraryPrepare") { + mustRunAfter("productionExecutableCompileSync") +} + +tasks.named("browserProductionWebpack") { + mustRunAfter("productionLibraryCompileSync") } \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/js-library-with-executable/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/js-library-with-executable/build.gradle.kts index 8ea39eab188..d9fc6779536 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/js-library-with-executable/build.gradle.kts +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/js-library-with-executable/build.gradle.kts @@ -12,8 +12,16 @@ repositories { kotlin { js { + // For now we do not recommend multiple binaries, so we test it just in case binaries.library() binaries.executable() nodejs() } +} + + +// We need it for suppress warnings of Gradle 7.0 +// We need to think about it, when we will support multiple binaries +tasks.named("nodeProductionLibraryPrepare") { + mustRunAfter("productionExecutableCompileSync") } \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTarget.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTarget.kt index c360494cae7..4f45b316242 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTarget.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTarget.kt @@ -20,7 +20,10 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.disambiguateName import org.jetbrains.kotlin.gradle.targets.js.JsAggregatingExecutionSource import org.jetbrains.kotlin.gradle.targets.js.KotlinJsReportAggregatingTestRun import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget -import org.jetbrains.kotlin.gradle.targets.js.dsl.* +import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBrowserDsl +import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsNodeDsl +import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsSubTargetContainerDsl +import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsTargetDsl import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject import org.jetbrains.kotlin.gradle.tasks.registerTask import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName