From 2b823cba1e342305e21904dd4171b09d35e397b4 Mon Sep 17 00:00:00 2001 From: Sebastian Sellmair Date: Mon, 16 Oct 2023 18:42:42 +0200 Subject: [PATCH] [Gradle] Implement IdeMultiplatformImportSetupAction KT-61634 --- .../kotlin/gradle/plugin/ide/IdeMultiplatformImport.kt | 7 ++++++- .../kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt | 3 --- .../kotlin/gradle/plugin/registerKotlinPluginExtensions.kt | 2 ++ 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/IdeMultiplatformImport.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/IdeMultiplatformImport.kt index 6609668ef62..c483dad2b69 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/IdeMultiplatformImport.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/ide/IdeMultiplatformImport.kt @@ -15,7 +15,7 @@ import org.jetbrains.kotlin.gradle.dsl.multiplatformExtensionOrNull import org.jetbrains.kotlin.gradle.idea.serialize.IdeaKotlinExtrasSerializationExtension import org.jetbrains.kotlin.gradle.idea.serialize.IdeaKotlinExtrasSerializationExtensionBuilder import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinDependency -import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType +import org.jetbrains.kotlin.gradle.plugin.* import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType.* import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet import org.jetbrains.kotlin.gradle.plugin.KotlinTarget @@ -325,6 +325,11 @@ internal val Project.kotlinIdeMultiplatformImport: IdeMultiplatformImport by pro IdeMultiplatformImport(project.kotlinExtension) } +internal val IdeMultiplatformImportSetupAction = KotlinProjectSetupAction { + /* Ensure instance is created */ + kotlinIdeMultiplatformImport +} + /** * Convenience shortcut method for * `registerExtrasSerializationExtension(IdeaKotlinExtrasSerializationExtension(builder))` diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt index 6b953b302b9..faff987fea6 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt @@ -66,9 +66,6 @@ class KotlinMultiplatformPlugin : Plugin { project.pluginManager.apply(ScriptingGradleSubplugin::class.java) exportProjectStructureMetadataForOtherBuilds(kotlinMultiplatformExtension) - - // Ensure that the instance is created and configured during apply - project.kotlinIdeMultiplatformImport } private fun exportProjectStructureMetadataForOtherBuilds( diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/registerKotlinPluginExtensions.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/registerKotlinPluginExtensions.kt index 59448cc53af..835d162bb09 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/registerKotlinPluginExtensions.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/registerKotlinPluginExtensions.kt @@ -28,6 +28,7 @@ import org.jetbrains.kotlin.gradle.plugin.diagnostics.checkers.NoKotlinTargetsDe import org.jetbrains.kotlin.gradle.plugin.diagnostics.checkers.PreHmppDependenciesUsageChecker import org.jetbrains.kotlin.gradle.plugin.diagnostics.checkers.UnusedSourceSetsChecker import org.jetbrains.kotlin.gradle.plugin.diagnostics.checkers.WasmSourceSetsNotFoundChecker +import org.jetbrains.kotlin.gradle.plugin.ide.IdeMultiplatformImportSetupAction import org.jetbrains.kotlin.gradle.plugin.ide.IdeResolveDependenciesTaskSetupAction import org.jetbrains.kotlin.gradle.plugin.mpp.apple.AddBuildListenerForXCodeSetupAction import org.jetbrains.kotlin.gradle.targets.js.npm.AddNpmDependencyExtensionProjectSetupAction @@ -45,6 +46,7 @@ internal fun Project.registerKotlinPluginExtensions() { register(project, KotlinToolingDiagnosticsSetupAction) if (isMultiplatform) { + register(project, IdeMultiplatformImportSetupAction) register(project, IdeResolveDependenciesTaskSetupAction) register(project, CInteropCommonizedCInteropApiElementsConfigurationsSetupAction) register(project, AddBuildListenerForXCodeSetupAction)