[Gradle] Implement IdeMultiplatformImportSetupAction

KT-61634
This commit is contained in:
Sebastian Sellmair
2023-10-16 18:42:42 +02:00
committed by Space Team
parent 246deafd6d
commit 2b823cba1e
3 changed files with 8 additions and 4 deletions
@@ -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))`
@@ -66,9 +66,6 @@ class KotlinMultiplatformPlugin : Plugin<Project> {
project.pluginManager.apply(ScriptingGradleSubplugin::class.java)
exportProjectStructureMetadataForOtherBuilds(kotlinMultiplatformExtension)
// Ensure that the instance is created and configured during apply
project.kotlinIdeMultiplatformImport
}
private fun exportProjectStructureMetadataForOtherBuilds(
@@ -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)