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