From 96a4821df6d336c351a40e72476969160ec20268 Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Thu, 8 Jun 2023 14:40:13 +0000 Subject: [PATCH] [Gradle, JS] Rename NPM aggregated configuration ^KT-59116 fixed --- .../kotlin/gradle/Kotlin2JsGradlePluginIT.kt | 10 ++++++++ .../build.gradle.kts | 25 +++++++++++++++++++ .../buildSrc/build.gradle.kts | 24 ++++++++++++++++++ .../buildSrc/src/main/kotlin/MyPlugin.kt | 14 +++++++++++ .../src/main/kotlin/Simple.kt | 5 ++++ .../gradle/targets/js/KotlinJsCompilation.kt | 6 ++--- .../resolver/KotlinCompilationNpmResolver.kt | 2 +- 7 files changed, 82 insertions(+), 4 deletions(-) create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/js-custom-build-src-plugin/build.gradle.kts create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/js-custom-build-src-plugin/buildSrc/build.gradle.kts create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/js-custom-build-src-plugin/buildSrc/src/main/kotlin/MyPlugin.kt create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/js-custom-build-src-plugin/src/main/kotlin/Simple.kt 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 1d4ccbf5ba6..763f9b522ef 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 @@ -650,6 +650,16 @@ class Kotlin2JsIrGradlePluginIT : AbstractKotlin2JsGradlePluginIT(true) { } } } + + @DisplayName("Custom plugin applying Kotlin/JS plugin") + @GradleTest + fun customPluginApplyingKotlinJsPlugin(gradleVersion: GradleVersion) { + project("js-custom-build-src-plugin", gradleVersion) { + build("checkConfigurationsResolve") { + assertTasksExecuted(":checkConfigurationsResolve") + } + } + } } @JsGradlePluginTests diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/js-custom-build-src-plugin/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/js-custom-build-src-plugin/build.gradle.kts new file mode 100644 index 00000000000..9e8b39a91fd --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/js-custom-build-src-plugin/build.gradle.kts @@ -0,0 +1,25 @@ +plugins { + id("my-plugin") +} + +group = "me.user" +version = "1.0-SNAPSHOT" + +repositories { + mavenCentral() + mavenLocal() +} + +dependencies { + implementation(npm("async", "3.2.4")) +} + +kotlin { + js { + tasks.register("checkConfigurationsResolve") { + doLast { + configurations.named(compilations["main"].npmAggregatedConfigurationName).resolve() + } + } + } +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/js-custom-build-src-plugin/buildSrc/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/js-custom-build-src-plugin/buildSrc/build.gradle.kts new file mode 100644 index 00000000000..e8ce6767f06 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/js-custom-build-src-plugin/buildSrc/build.gradle.kts @@ -0,0 +1,24 @@ +plugins { + `java-gradle-plugin` + `kotlin-dsl` +} + +repositories { + mavenCentral() + mavenLocal() +} + +val kotlinVersion = project.property("kotlin_version") + +dependencies { + implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion") +} + +gradlePlugin { + plugins { + create("myPlugins") { + id = "my-plugin" + implementationClass = "MyPlugin" + } + } +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/js-custom-build-src-plugin/buildSrc/src/main/kotlin/MyPlugin.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/js-custom-build-src-plugin/buildSrc/src/main/kotlin/MyPlugin.kt new file mode 100644 index 00000000000..73ae2dfb584 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/js-custom-build-src-plugin/buildSrc/src/main/kotlin/MyPlugin.kt @@ -0,0 +1,14 @@ +import org.gradle.api.Plugin +import org.gradle.api.Project +import org.gradle.kotlin.dsl.configure +import org.jetbrains.kotlin.gradle.dsl.KotlinJsProjectExtension + +open class MyPlugin : Plugin { + override fun apply(target: Project) { + target.plugins.apply("org.jetbrains.kotlin.js") + + target.configure { + js(IR) { browser { } } + } + } +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/js-custom-build-src-plugin/src/main/kotlin/Simple.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/js-custom-build-src-plugin/src/main/kotlin/Simple.kt new file mode 100644 index 00000000000..08eb036ffb7 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/js-custom-build-src-plugin/src/main/kotlin/Simple.kt @@ -0,0 +1,5 @@ +fun main() { + println("Hello, ${greet()}") +} + +fun greet() = "world" \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsCompilation.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsCompilation.kt index 0a3c311b3f7..7a2e7739f0d 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsCompilation.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsCompilation.kt @@ -54,8 +54,8 @@ open class KotlinJsCompilation @Inject internal constructor( override val processResourcesTaskName: String get() = disambiguateName("processResources") - val npmConfigurationName - get() = compilation.disambiguateName("npm") + val npmAggregatedConfigurationName + get() = compilation.disambiguateName("npmAggregated") val publicPackageJsonConfigurationName get() = compilation.disambiguateName("publicPackageJsonConfiguration") @@ -63,7 +63,7 @@ open class KotlinJsCompilation @Inject internal constructor( @Deprecated("Scheduled for removal with Kotlin 2.0") @Suppress("DEPRECATION") override val relatedConfigurationNames: List - get() = super.relatedConfigurationNames + npmConfigurationName + publicPackageJsonConfigurationName + get() = super.relatedConfigurationNames + npmAggregatedConfigurationName + publicPackageJsonConfigurationName override fun getAttributes(): AttributeContainer { return compilation.attributes diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/resolver/KotlinCompilationNpmResolver.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/resolver/KotlinCompilationNpmResolver.kt index ed14328590f..65c27a79c91 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/resolver/KotlinCompilationNpmResolver.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/resolver/KotlinCompilationNpmResolver.kt @@ -130,7 +130,7 @@ class KotlinCompilationNpmResolver( } private fun createAggregatedConfiguration(): Configuration { - val all = project.configurations.create(compilation.npmConfigurationName) + val all = project.configurations.create(compilation.npmAggregatedConfigurationName) all.usesPlatformOf(target) all.attributes.attribute(Usage.USAGE_ATTRIBUTE, KotlinUsages.consumerRuntimeUsage(target))