[Gradle] Fix cocoapods' cinterops UTD

^KT-60112 Verification Pending
This commit is contained in:
Artem Daugel-Dauge
2023-07-04 18:43:48 +02:00
committed by Space Team
parent 344dbcbd23
commit b381752074
2 changed files with 28 additions and 0 deletions
@@ -250,6 +250,30 @@ class CocoaPodsIT : KGPBaseTest() {
}
}
@DisplayName("cinterops UTD after pod change")
@GradleTest
fun testCinteropsUTDAfterPodChange(gradleVersion: GradleVersion) {
nativeProjectWithCocoapodsAndIosAppPodFile(gradleVersion = gradleVersion) {
val podDeclaration = """pod("Base64", version = "1.0.1")"""
buildGradleKts.addCocoapodsBlock(podDeclaration)
buildWithCocoapodsWrapper(podImportTaskName) {
assertTasksExecuted(":cinteropBase64IOS")
}
buildWithCocoapodsWrapper(podImportTaskName) {
assertTasksUpToDate(":cinteropBase64IOS")
}
buildGradleKts.replaceText(podDeclaration, """pod("Base64", version = "1.1.2")""")
buildWithCocoapodsWrapper(podImportTaskName) {
assertTasksExecuted(":cinteropBase64IOS")
}
}
}
@DisplayName("Installing pod without pod file")
@GradleTest
fun testPodInstallWithoutPodFile(gradleVersion: GradleVersion) {
@@ -338,6 +338,10 @@ open class KotlinCocoapodsPlugin : Plugin<Project> {
val podBuildTaskProvider = project.getPodBuildTaskProvider(target, pod)
val buildSettingsFileProvider = project.buildSettingsFileProvider(pod, target)
interopTask.inputs.file(buildSettingsFileProvider)
// Since we can't properly declare frameworks as inputs (see below) it's the best approximation
interopTask.inputs.files(podBuildTaskProvider.flatMap { it.srcDir })
interopTask.dependsOn(podBuildTaskProvider)
interopTask.doFirst { _ ->