fixup! Introduce SwiftPMImportIdeContext
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/apple/SwiftPMImportIdeContextTests.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/apple/SwiftPMImportIdeModelTests.kt similarity index 93% rename from libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/apple/SwiftPMImportIdeContextTests.kt rename to libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/apple/SwiftPMImportIdeModelTests.kt index c51c592..0ec6790 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/apple/SwiftPMImportIdeContextTests.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/apple/SwiftPMImportIdeModelTests.kt
@@ -3,10 +3,13 @@ * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ +@file:OptIn(ExperimentalKotlinGradlePluginApi::class) + package org.jetbrains.kotlin.gradle.apple import org.gradle.kotlin.dsl.kotlin import org.gradle.util.GradleVersion +import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension import org.jetbrains.kotlin.gradle.dsl.kotlinExtension import org.jetbrains.kotlin.gradle.plugin.ide.prepareKotlinIdeaImportTask @@ -25,8 +28,6 @@ import org.jetbrains.kotlin.gradle.uklibs.include import org.jetbrains.kotlin.gradle.util.runProcess import org.junit.jupiter.api.condition.OS -import org.junit.jupiter.api.io.TempDir -import java.nio.file.Path import kotlin.io.path.createDirectories import kotlin.test.assertEquals @@ -35,11 +36,11 @@ enabledOnCI = [OS.MAC], ) @SwiftPMImportGradlePluginTests -class SwiftPMImportIdeContextTests : KGPBaseTest() { +class SwiftPMImportIdeModelTests : KGPBaseTest() { @OptIn(Idea222Api::class) @GradleTest - fun `hasSwiftPMDependencies - transitive SwiftPM dependencies from project dependencies - influence hasSwiftPMDependencies flag`(version: GradleVersion, @TempDir temp: Path) { + fun `hasSwiftPMDependencies - transitive SwiftPM dependencies from project dependencies - influence hasSwiftPMDependencies flag`(version: GradleVersion) { project("empty", version) { plugins { kotlin("multiplatform").apply(false) @@ -89,14 +90,14 @@ val consumerWithDependencyHasSwiftPMDependenciesProvider = consumerWithDependency.providerBuildScriptReturn { project.prepareKotlinIdeaImportTask.map { project.ignoreAccessViolations { - (project.kotlinExtension as KotlinMultiplatformExtension).swiftPMImportIdeContext?.hasSwiftPMDependencies ?: error("...") + (project.kotlinExtension as KotlinMultiplatformExtension).swiftPMImportIdeModel?.hasSwiftPMDependencies ?: error("...") } } } val consumerWithoutDependencyHasSwiftPMDependenciesProvider = consumerWithoutDependency.providerBuildScriptReturn { project.prepareKotlinIdeaImportTask.map { project.ignoreAccessViolations { - (project.kotlinExtension as KotlinMultiplatformExtension).swiftPMImportIdeContext?.hasSwiftPMDependencies ?: error("...") + (project.kotlinExtension as KotlinMultiplatformExtension).swiftPMImportIdeModel?.hasSwiftPMDependencies ?: error("...") } } }
diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinMultiplatformExtension.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinMultiplatformExtension.kt index 6b69fd3..4233ba5 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinMultiplatformExtension.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinMultiplatformExtension.kt
@@ -26,7 +26,7 @@ import org.jetbrains.kotlin.gradle.plugin.hierarchy.KotlinHierarchyDslImpl import org.jetbrains.kotlin.gradle.plugin.hierarchy.redundantDependsOnEdgesTracker import org.jetbrains.kotlin.gradle.plugin.mpp.* -import org.jetbrains.kotlin.gradle.plugin.mpp.apple.swiftimport.swiftPMImportIdeContextProvider +import org.jetbrains.kotlin.gradle.plugin.mpp.apple.swiftimport.swiftPMImportIdeModelProvider import org.jetbrains.kotlin.gradle.targets.android.internal.InternalKotlinTargetPreset import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsTargetDsl import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinWasmJsTargetDsl @@ -277,9 +277,9 @@ syncCommonMultiplatformOptions(it) } - // This getter is consumed during KMP import - internal val swiftPMImportIdeContext - get() = if (!project.kotlinPropertiesProvider.disableSwiftPMImport) project.swiftPMImportIdeContextProvider().get() else null + // This getter is consumed during KMP import in KotlinMPPGradleModelBuilder + internal val swiftPMImportIdeModel + get() = if (!project.kotlinPropertiesProvider.disableSwiftPMImport) project.swiftPMImportIdeModelProvider().get() else null } private const val targetsExtensionDeprecationMessage =
diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/swiftimport/SwiftImportSetupAction.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/swiftimport/SwiftImportSetupAction.kt index 929db38..c89c09d 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/swiftimport/SwiftImportSetupAction.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/swiftimport/SwiftImportSetupAction.kt
@@ -174,7 +174,7 @@ } prepareKotlinIdeaImportTask.configure { - it.dependsOn(project.swiftPMImportIdeContextProvider()) + it.dependsOn(project.swiftPMImportIdeModelProvider()) } kotlinExtension.targets.matching { it.supportsSwiftPMImport() }.all { target -> @@ -513,9 +513,9 @@ } } -internal fun Project.swiftPMImportIdeContextProvider(): Provider<SwiftPMImportIdeContext> = +internal fun Project.swiftPMImportIdeModelProvider(): Provider<SwiftPMImportIdeModel> = project.hasDirectOrTransitiveSwiftPMDependencies().map { hasDirectOrTransitiveSwiftPMDependencies -> - SwiftPMImportIdeContext( + SwiftPMImportIdeModel( hasDirectOrTransitiveSwiftPMDependencies, ("${project.path}:${IntegrateLinkagePackageIntoXcodeProject.TASK_NAME}").replace("::", ":"), SYNTHETIC_IMPORT_TARGET_MAGIC_NAME,
diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/swiftimport/SwiftPMImportIdeContext.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/swiftimport/SwiftPMImportIdeModel.kt similarity index 89% rename from libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/swiftimport/SwiftPMImportIdeContext.kt rename to libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/swiftimport/SwiftPMImportIdeModel.kt index f33db33..3524dea 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/swiftimport/SwiftPMImportIdeContext.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/swiftimport/SwiftPMImportIdeModel.kt
@@ -6,7 +6,7 @@ package org.jetbrains.kotlin.gradle.plugin.mpp.apple.swiftimport @Suppress("unused") -internal data class SwiftPMImportIdeContext( +internal data class SwiftPMImportIdeModel( val hasSwiftPMDependencies: Boolean, val integrateLinkagePackageTaskPath: String, val magicPackageName: String,
diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/SwiftPMImportIdeContextTests.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/SwiftPMImportIdeModelTests.kt similarity index 82% rename from libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/SwiftPMImportIdeContextTests.kt rename to libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/SwiftPMImportIdeModelTests.kt index 1ddbbd9..7e19976 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/SwiftPMImportIdeContextTests.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/SwiftPMImportIdeModelTests.kt
@@ -8,7 +8,7 @@ import org.jetbrains.kotlin.gradle.dsl.multiplatformExtension import org.jetbrains.kotlin.gradle.plugin.mpp.apple.swiftimport.GenerateSyntheticLinkageImportProject.Companion.SYNTHETIC_IMPORT_TARGET_MAGIC_NAME import org.jetbrains.kotlin.gradle.plugin.mpp.apple.swiftimport.IntegrateLinkagePackageIntoXcodeProject -import org.jetbrains.kotlin.gradle.plugin.mpp.apple.swiftimport.SwiftPMImportIdeContext +import org.jetbrains.kotlin.gradle.plugin.mpp.apple.swiftimport.SwiftPMImportIdeModel import org.jetbrains.kotlin.gradle.plugin.mpp.apple.swiftimport.locateOrRegisterSwiftPMDependenciesExtension import org.jetbrains.kotlin.gradle.util.buildProject import org.jetbrains.kotlin.gradle.util.buildProjectWithMPP @@ -16,11 +16,11 @@ import kotlin.test.Test import kotlin.test.assertEquals -class SwiftPMImportIdeContextTests { +class SwiftPMImportIdeModelTests { @Test - fun `swiftPMImportIdeContext - project without SwiftPM dependencies`() { + fun `swiftPMImportIdeModel - project without SwiftPM dependencies`() { assertEquals( - SwiftPMImportIdeContext( + SwiftPMImportIdeModel( hasSwiftPMDependencies = false, integrateLinkagePackageTaskPath = ":${IntegrateLinkagePackageIntoXcodeProject.TASK_NAME}", magicPackageName = SYNTHETIC_IMPORT_TARGET_MAGIC_NAME, @@ -29,7 +29,7 @@ kotlin { iosArm64() } - }.multiplatformExtension.swiftPMImportIdeContext + }.multiplatformExtension.swiftPMImportIdeModel ) } @@ -45,15 +45,15 @@ kotlin { iosArm64() } - }.multiplatformExtension.swiftPMImportIdeContext.integrateLinkagePackageTaskPath + }.multiplatformExtension.swiftPMImportIdeModel?.integrateLinkagePackageTaskPath ) } // The rest of this suite has to be implemented as an integration test because interproject SwiftPM dependencies work by serializing using a task @Test - fun `swiftPMImportIdeContext - project with direct SwiftPM dependency`() { + fun `swiftPMImportIdeModel - project with direct SwiftPM dependency`() { assertEquals( - SwiftPMImportIdeContext( + SwiftPMImportIdeModel( hasSwiftPMDependencies = true, integrateLinkagePackageTaskPath = ":${IntegrateLinkagePackageIntoXcodeProject.TASK_NAME}", magicPackageName = SYNTHETIC_IMPORT_TARGET_MAGIC_NAME, @@ -63,7 +63,7 @@ iosArm64() locateOrRegisterSwiftPMDependenciesExtension().swiftPackage(url = "foo", version = "1.0.0", products = listOf("bar")) } - }.multiplatformExtension.swiftPMImportIdeContext + }.multiplatformExtension.swiftPMImportIdeModel ) } } \ No newline at end of file