diff --git a/.idea/runConfigurations/Test__Commonizer.xml b/.idea/runConfigurations/Test__Commonizer.xml
index a420b49e41e..5cbb4865e0f 100644
--- a/.idea/runConfigurations/Test__Commonizer.xml
+++ b/.idea/runConfigurations/Test__Commonizer.xml
@@ -4,7 +4,7 @@
-
+
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/CocoaPodsIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/CocoaPodsIT.kt
index 04ad894945e..4d9811d63b1 100644
--- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/CocoaPodsIT.kt
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/CocoaPodsIT.kt
@@ -62,6 +62,7 @@ class CocoaPodsIT : BaseGradleIT() {
private val templateProjectName = "native-cocoapods-template"
private val groovyTemplateProjectName = "native-cocoapods-template-groovy"
private val cocoapodsTestsProjectName = "native-cocoapods-tests"
+ private val cocoapodsCommonizationProjectName = "native-cocoapods-commonization"
private val dummyTaskName = ":$DUMMY_FRAMEWORK_TASK_NAME"
private val podspecTaskName = ":$POD_SPEC_TASK_NAME"
@@ -903,6 +904,31 @@ class CocoaPodsIT : BaseGradleIT() {
)
}
+ @Test
+ fun testCinteropCommonizationOff() {
+ project = getProjectByName(cocoapodsCommonizationProjectName)
+ hooks.addHook {
+ assertTasksExecuted(":commonizeNativeDistribution")
+ assertTasksNotExecuted(":cinteropAFNetworkingIosArm64")
+ assertTasksNotExecuted(":cinteropAFNetworkingIosX64")
+ assertTasksNotExecuted(":commonizeCInterop")
+ }
+ project.testWithWrapper(":commonize")
+ }
+
+ @Test
+ fun testCinteropCommonizationOn() {
+ project = getProjectByName(cocoapodsCommonizationProjectName)
+ project.gradleProperties().appendLine("kotlin.mpp.enableCInteropCommonization=true")
+ hooks.addHook {
+ assertTasksExecuted(":commonizeNativeDistribution")
+ assertTasksExecuted(":cinteropAFNetworkingIosArm64")
+ assertTasksExecuted(":cinteropAFNetworkingIosX64")
+ assertTasksExecuted(":commonizeCInterop")
+ }
+ project.testWithWrapper(":compileIosMainKotlinMetadata")
+ }
+
// paths
private fun CompiledProject.url() = externalSources().resolve("url")
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/native-cocoapods-commonization/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/native-cocoapods-commonization/build.gradle.kts
new file mode 100644
index 00000000000..e223985b2ea
--- /dev/null
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/native-cocoapods-commonization/build.gradle.kts
@@ -0,0 +1,22 @@
+plugins {
+ id("org.jetbrains.kotlin.multiplatform").version("")
+ id("org.jetbrains.kotlin.native.cocoapods").version("")
+}
+
+repositories {
+ mavenLocal()
+ mavenCentral()
+}
+
+group = "org.jetbrains.kotlin.sample.native"
+version = "1.0"
+
+kotlin {
+ ios()
+ cocoapods {
+ homepage = "https://github.com/JetBrains/kotlin"
+ summary = "CocoaPods test library"
+ ios.deploymentTarget = "13.5"
+ pod("AFNetworking")
+ }
+}
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/native-cocoapods-commonization/gradle.properties b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/native-cocoapods-commonization/gradle.properties
new file mode 100644
index 00000000000..57214faaaa7
--- /dev/null
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/native-cocoapods-commonization/gradle.properties
@@ -0,0 +1,5 @@
+kotlin.code.style=official
+org.gradle.debug=false
+
+kotlin.mpp.enableGranularSourceSetsMetadata=true
+kotlin.native.enableDependencyPropagation=false
\ No newline at end of file
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/native-cocoapods-commonization/settings.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/native-cocoapods-commonization/settings.gradle
new file mode 100644
index 00000000000..1fb6657dc9b
--- /dev/null
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/native-cocoapods-commonization/settings.gradle
@@ -0,0 +1,9 @@
+pluginManagement {
+ repositories {
+ mavenLocal()
+ mavenCentral()
+ gradlePluginPortal()
+ }
+}
+
+rootProject.name = "cocoapods"
\ No newline at end of file
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/native-cocoapods-commonization/src/iosMain/kotlin/A.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/native-cocoapods-commonization/src/iosMain/kotlin/A.kt
new file mode 100644
index 00000000000..3175ab890a6
--- /dev/null
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/native-cocoapods-commonization/src/iosMain/kotlin/A.kt
@@ -0,0 +1,8 @@
+package testProject.`new-mpp-cocoapods-template`.src.iosMain.kotlin
+
+import cocoapods.AFNetworking.*
+
+fun foo() : Boolean {
+ val manager = AFURLSessionManager()
+ return manager != null
+}
\ No newline at end of file