[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.IdeaKotlinExtrasSerializationExtension
import org.jetbrains.kotlin.gradle.idea.serialize.IdeaKotlinExtrasSerializationExtensionBuilder import org.jetbrains.kotlin.gradle.idea.serialize.IdeaKotlinExtrasSerializationExtensionBuilder
import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinDependency 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.KotlinPlatformType.*
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
import org.jetbrains.kotlin.gradle.plugin.KotlinTarget import org.jetbrains.kotlin.gradle.plugin.KotlinTarget
@@ -325,6 +325,11 @@ internal val Project.kotlinIdeMultiplatformImport: IdeMultiplatformImport by pro
IdeMultiplatformImport(project.kotlinExtension) IdeMultiplatformImport(project.kotlinExtension)
} }
internal val IdeMultiplatformImportSetupAction = KotlinProjectSetupAction {
/* Ensure instance is created */
kotlinIdeMultiplatformImport
}
/** /**
* Convenience shortcut method for * Convenience shortcut method for
* `registerExtrasSerializationExtension(IdeaKotlinExtrasSerializationExtension(builder))` * `registerExtrasSerializationExtension(IdeaKotlinExtrasSerializationExtension(builder))`
@@ -66,9 +66,6 @@ class KotlinMultiplatformPlugin : Plugin<Project> {
project.pluginManager.apply(ScriptingGradleSubplugin::class.java) project.pluginManager.apply(ScriptingGradleSubplugin::class.java)
exportProjectStructureMetadataForOtherBuilds(kotlinMultiplatformExtension) exportProjectStructureMetadataForOtherBuilds(kotlinMultiplatformExtension)
// Ensure that the instance is created and configured during apply
project.kotlinIdeMultiplatformImport
} }
private fun exportProjectStructureMetadataForOtherBuilds( 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.PreHmppDependenciesUsageChecker
import org.jetbrains.kotlin.gradle.plugin.diagnostics.checkers.UnusedSourceSetsChecker import org.jetbrains.kotlin.gradle.plugin.diagnostics.checkers.UnusedSourceSetsChecker
import org.jetbrains.kotlin.gradle.plugin.diagnostics.checkers.WasmSourceSetsNotFoundChecker 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.ide.IdeResolveDependenciesTaskSetupAction
import org.jetbrains.kotlin.gradle.plugin.mpp.apple.AddBuildListenerForXCodeSetupAction import org.jetbrains.kotlin.gradle.plugin.mpp.apple.AddBuildListenerForXCodeSetupAction
import org.jetbrains.kotlin.gradle.targets.js.npm.AddNpmDependencyExtensionProjectSetupAction import org.jetbrains.kotlin.gradle.targets.js.npm.AddNpmDependencyExtensionProjectSetupAction
@@ -45,6 +46,7 @@ internal fun Project.registerKotlinPluginExtensions() {
register(project, KotlinToolingDiagnosticsSetupAction) register(project, KotlinToolingDiagnosticsSetupAction)
if (isMultiplatform) { if (isMultiplatform) {
register(project, IdeMultiplatformImportSetupAction)
register(project, IdeResolveDependenciesTaskSetupAction) register(project, IdeResolveDependenciesTaskSetupAction)
register(project, CInteropCommonizedCInteropApiElementsConfigurationsSetupAction) register(project, CInteropCommonizedCInteropApiElementsConfigurationsSetupAction)
register(project, AddBuildListenerForXCodeSetupAction) register(project, AddBuildListenerForXCodeSetupAction)