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 6cb3825a1e6..7508d571180 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 @@ -65,6 +65,23 @@ class CocoaPodsIT : KGPBaseTest() { } } + @DisplayName("Pod import single noPodspec") + @GradleTest + fun testPodImportSingleNoPodspec(gradleVersion: GradleVersion) { + nativeProjectWithCocoapodsAndIosAppPodFile(cocoapodsSingleKtPod, gradleVersion) { + + buildGradleKts.addCocoapodsBlock("noPodspec()") + + buildWithCocoapodsWrapper(podImportTaskName) { + podImportAsserts(buildGradleKts) + } + + buildWithCocoapodsWrapper(":kotlin-library:podImport") { + podImportAsserts(subProject("kotlin-library").buildGradleKts, "kotlin-library") + } + } + } + @DisplayName("Pod import multiple") @GradleTest fun testPodImportMultiple(gradleVersion: GradleVersion) { @@ -732,6 +749,23 @@ class CocoaPodsIT : KGPBaseTest() { } } + @DisplayName("Add pod-dependencies together with noPodspec") + @GradleTest + fun testPodDependenciesWithNoPodspec(gradleVersion: GradleVersion) { + nativeProjectWithCocoapodsAndIosAppPodFile(gradleVersion = gradleVersion) { + buildGradleKts.addCocoapodsBlock( + """ + noPodspec() + + pod("Base64", version = "1.1.2") + """.trimIndent() + ) + buildWithCocoapodsWrapper(":linkPodDebugFrameworkIOS") { + assertFileInProjectNotExists("cocoapods.podspec") + } + } + } + @DisplayName("Hierarchy of dependant pods compiles successfully") @GradleTest fun testHierarchyOfDependantPodsCompilesSuccessfully(gradleVersion: GradleVersion) { diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/KotlinCocoapodsPlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/KotlinCocoapodsPlugin.kt index 8e0995cf49f..d531e7177fd 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/KotlinCocoapodsPlugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/KotlinCocoapodsPlugin.kt @@ -489,6 +489,7 @@ open class KotlinCocoapodsPlugin : Plugin { task.group = TASK_GROUP task.description = "Invokes `pod install` call within Podfile location directory" task.podfile.set(project.provider { cocoapodsExtension.podfile }) + @Suppress("DEPRECATION") // is set for compatibility reasons task.podspec.set(podspecTaskProvider.map { it.outputFile }) task.useStaticFramework.set(cocoapodsExtension.podFrameworkIsStatic) task.frameworkName.set(cocoapodsExtension.podFrameworkName) @@ -504,7 +505,6 @@ open class KotlinCocoapodsPlugin : Plugin { ) { val families = mutableSetOf() - val podspecTaskProvider = project.tasks.named(POD_SPEC_TASK_NAME) kotlinExtension.supportedTargets().all { target -> val family = target.konanTarget.family if (family in families) { @@ -524,7 +524,6 @@ open class KotlinCocoapodsPlugin : Plugin { val podGenTask = project.registerTask(family.toPodGenTaskName) { task -> task.description = "Сreates a synthetic Xcode project to retrieve CocoaPods dependencies" - task.podspec.set(podspecTaskProvider.map { it.outputFile }) task.podName.set(project.provider { cocoapodsExtension.name }) task.specRepos.set(project.provider { cocoapodsExtension.specRepos }) task.family.set(family) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/tasks/PodGenTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/tasks/PodGenTask.kt index 526c30cc7a2..501a01f3ce8 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/tasks/PodGenTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/tasks/PodGenTask.kt @@ -35,10 +35,6 @@ abstract class PodGenTask @Inject constructor(projectLayout: ProjectLayout) : Co } } - @get:PathSensitive(PathSensitivity.RELATIVE) - @get:InputFile - internal abstract val podspec: Property - @get:Input internal abstract val podName: Property diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/tasks/PodInstallTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/tasks/PodInstallTask.kt index c7a2150b584..3103873cd20 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/tasks/PodInstallTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/tasks/PodInstallTask.kt @@ -20,9 +20,8 @@ import java.io.File @DisableCachingByDefault abstract class PodInstallTask : AbstractPodInstallTask() { - @get:PathSensitive(PathSensitivity.RELATIVE) - @get:Optional - @get:InputFile + @Deprecated("Use PodspecTask#outputFile") + @get:Internal abstract val podspec: Property @get:Input