diff --git a/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/HierarchicalMultiplatformProjectImportingTest.kt b/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/HierarchicalMultiplatformProjectImportingTest.kt index 0a732580dc6..5130be92a4e 100644 --- a/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/HierarchicalMultiplatformProjectImportingTest.kt +++ b/idea/idea-gradle/tests/org/jetbrains/kotlin/gradle/HierarchicalMultiplatformProjectImportingTest.kt @@ -578,6 +578,27 @@ class HierarchicalMultiplatformProjectImportingTest : MultiplePluginVersionGradl } } + @Test + @PluginTargetVersions(gradleVersionForLatestPlugin = mppImportTestMinVersionForMaster) + fun testCommonMainIsSingleBackend() { + configureByFiles() + importProject() + + val macosX64 = NativePlatforms.nativePlatformBySingleTarget(KonanTarget.MACOS_X64) + val linuxX64 = NativePlatforms.nativePlatformBySingleTarget(KonanTarget.LINUX_X64) + + checkProjectStructure(exhaustiveModuleList = false, exhaustiveSourceSourceRootList = false, exhaustiveDependencyList = false) { + module("my-app.commonMain") { targetPlatform(macosX64, linuxX64) } + module("my-app.commonTest") { targetPlatform(macosX64, linuxX64) } + + module("my-app.linuxX64Main") { targetPlatform(linuxX64) } + module("my-app.linuxX64Test") { targetPlatform(linuxX64) } + + module("my-app.macosX64Test") { targetPlatform(macosX64) } + module("my-app.macosX64Main") { targetPlatform(macosX64) } + } + } + private fun checkProjectStructure( exhaustiveModuleList: Boolean = true, exhaustiveSourceSourceRootList: Boolean = true, diff --git a/idea/testData/gradle/hierarchicalMultiplatformImport/commonMainIsSingleBackend/build.gradle.kts b/idea/testData/gradle/hierarchicalMultiplatformImport/commonMainIsSingleBackend/build.gradle.kts new file mode 100644 index 00000000000..d01c1a2e049 --- /dev/null +++ b/idea/testData/gradle/hierarchicalMultiplatformImport/commonMainIsSingleBackend/build.gradle.kts @@ -0,0 +1,21 @@ +buildscript { + repositories { + {{kts_kotlin_plugin_repositories}} + } +} + +repositories { + {{kts_kotlin_plugin_repositories}} +} + +plugins { + kotlin("multiplatform").version("{{kotlin_plugin_version}}") +} + +group = "project" +version = "1.0" + +kotlin { + linuxX64() + macosX64() +} \ No newline at end of file diff --git a/idea/testData/gradle/hierarchicalMultiplatformImport/commonMainIsSingleBackend/gradle.properties b/idea/testData/gradle/hierarchicalMultiplatformImport/commonMainIsSingleBackend/gradle.properties new file mode 100644 index 00000000000..5947cb440c4 --- /dev/null +++ b/idea/testData/gradle/hierarchicalMultiplatformImport/commonMainIsSingleBackend/gradle.properties @@ -0,0 +1 @@ +kotlin.mpp.enableGranularSourceSetsMetadata=true diff --git a/idea/testData/gradle/hierarchicalMultiplatformImport/commonMainIsSingleBackend/settings.gradle.kts b/idea/testData/gradle/hierarchicalMultiplatformImport/commonMainIsSingleBackend/settings.gradle.kts new file mode 100644 index 00000000000..176c45caae2 --- /dev/null +++ b/idea/testData/gradle/hierarchicalMultiplatformImport/commonMainIsSingleBackend/settings.gradle.kts @@ -0,0 +1,9 @@ +pluginManagement { + repositories { + {{kts_kotlin_plugin_repositories}} + } +} + +rootProject.name = "my-app" + +enableFeaturePreview("GRADLE_METADATA") \ No newline at end of file