[Gradle] Fix issues with EmbedAndSignUsedWithPodDependencies diagnostic
Emit diagnostic right after task graph had been formed instead of waiting for embedAndSign execution (^KT-66445,^KT-66446) Verification Pending
This commit is contained in:
committed by
Space Team
parent
9851ff1905
commit
06960394b7
+1
-2
@@ -17,7 +17,6 @@ import org.gradle.work.DisableCachingByDefault
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinNativeBinaryContainer
|
||||
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.Companion.kotlinPropertiesProvider
|
||||
import org.jetbrains.kotlin.gradle.plugin.diagnostics.KotlinToolingDiagnostics
|
||||
import org.jetbrains.kotlin.gradle.plugin.diagnostics.UsesKotlinToolingDiagnostics
|
||||
import org.jetbrains.kotlin.gradle.plugin.diagnostics.reportDiagnostic
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.Framework
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.NativeBuildType
|
||||
@@ -374,4 +373,4 @@ internal abstract class FrameworkCopy : DefaultTask() {
|
||||
}
|
||||
|
||||
@DisableCachingByDefault(because = "Caching breaks symlinks inside frameworks")
|
||||
internal abstract class EmbedAndSignTask : FrameworkCopy(), UsesKotlinToolingDiagnostics
|
||||
internal abstract class EmbedAndSignTask : FrameworkCopy()
|
||||
|
||||
+6
-9
@@ -813,19 +813,16 @@ open class KotlinCocoapodsPlugin : Plugin<Project> {
|
||||
}
|
||||
|
||||
|
||||
private fun checkEmbedAndSignNotUsedTogetherWithPodDependencies(project: Project, kotlinExtension: KotlinMultiplatformExtension, cocoapodsExtension: CocoapodsExtension) {
|
||||
private fun checkEmbedAndSignNotUsedTogetherWithPodDependencies(project: Project, cocoapodsExtension: CocoapodsExtension) {
|
||||
cocoapodsExtension.pods.all {
|
||||
SingleActionPerProject.run(project, "assertEmbedAndSignNotUsedTogetherWithPodDependencies") {
|
||||
kotlinExtension.targets.withType<KotlinNativeTarget>().all { target ->
|
||||
target.binaries.withType<Framework>().all {
|
||||
project.tasks.withType<EmbedAndSignTask>().all { embedAndSignTask ->
|
||||
embedAndSignTask.doFirst {
|
||||
embedAndSignTask.reportDiagnostic(CocoapodsPluginDiagnostics.EmbedAndSignUsedWithPodDependencies())
|
||||
}
|
||||
project.tasks.withType<EmbedAndSignTask>().all { embedAndSignTask ->
|
||||
project.gradle.taskGraph.whenReady { taskGraph ->
|
||||
if (taskGraph.hasTask(embedAndSignTask)) {
|
||||
project.reportDiagnostic(CocoapodsPluginDiagnostics.EmbedAndSignUsedWithPodDependencies())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -888,7 +885,7 @@ open class KotlinCocoapodsPlugin : Plugin<Project> {
|
||||
createInterops(project, kotlinExtension, cocoapodsExtension)
|
||||
configureLinkingOptions(project, cocoapodsExtension)
|
||||
checkLinkOnlyNotUsedWithStaticFramework(project, cocoapodsExtension)
|
||||
checkEmbedAndSignNotUsedTogetherWithPodDependencies(project, kotlinExtension, cocoapodsExtension)
|
||||
checkEmbedAndSignNotUsedTogetherWithPodDependencies(project, cocoapodsExtension)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user