diff --git a/CHANGELOG.md b/CHANGELOG.md index a8effc3c..b96ac29b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ ### Enhancements -- Gradle Plugin: implement conditional Cocoa linking for targets ([#421](https://github.com/getsentry/sentry-kotlin-multiplatform/pull/421)) +- Gradle Plugin: implement conditional Cocoa linking for targets ([#421](https://github.com/getsentry/sentry-kotlin-multiplatform/pull/421), [#423](https://github.com/getsentry/sentry-kotlin-multiplatform/pull/423)) ## 0.14.0 diff --git a/sentry-kotlin-multiplatform-gradle-plugin/src/main/java/io/sentry/kotlin/multiplatform/gradle/SentryPlugin.kt b/sentry-kotlin-multiplatform-gradle-plugin/src/main/java/io/sentry/kotlin/multiplatform/gradle/SentryPlugin.kt index 25283376..6635bf29 100644 --- a/sentry-kotlin-multiplatform-gradle-plugin/src/main/java/io/sentry/kotlin/multiplatform/gradle/SentryPlugin.kt +++ b/sentry-kotlin-multiplatform-gradle-plugin/src/main/java/io/sentry/kotlin/multiplatform/gradle/SentryPlugin.kt @@ -99,9 +99,9 @@ private fun maybeLinkCocoaFramework( project.gradle.taskGraph.whenReady { graph -> // Check which of the Kotlin/Native targets are actually in the graph - val activeTarget = getActiveTarget(project, appleTargets, graph) + val activeTargets = getActiveTargets(project, appleTargets, graph) - if (activeTarget == null) { + if (activeTargets.isEmpty()) { project.logger.lifecycle( "No Apple compile task scheduled for this build " + "- skipping Sentry Cocoa framework linking" @@ -109,22 +109,22 @@ private fun maybeLinkCocoaFramework( return@whenReady } - project.logger.lifecycle("Set up Sentry Cocoa linking for target: ${activeTarget.name}") + project.logger.lifecycle("Set up Sentry Cocoa linking for targets: ${activeTargets.map { it.name }}") CocoaFrameworkLinker( logger = project.logger, pathResolver = FrameworkPathResolver(project), binaryLinker = FrameworkLinker(project.logger) - ).configure(appleTargets = listOf(activeTarget)) + ).configure(appleTargets = activeTargets) } } } -private fun getActiveTarget( +private fun getActiveTargets( project: Project, appleTargets: List, graph: TaskExecutionGraph -): KotlinNativeTarget? = appleTargets.firstOrNull { target -> +): List = appleTargets.filter { target -> val targetName = target.name.replaceFirstChar { it.uppercase() } diff --git a/sentry-kotlin-multiplatform-gradle-plugin/src/test/java/io/sentry/kotlin/multiplatform/gradle/CocoaFrameworkLinkerIntegrationTest.kt b/sentry-kotlin-multiplatform-gradle-plugin/src/test/java/io/sentry/kotlin/multiplatform/gradle/CocoaFrameworkLinkerIntegrationTest.kt index 4639d8f8..d67263cb 100644 --- a/sentry-kotlin-multiplatform-gradle-plugin/src/test/java/io/sentry/kotlin/multiplatform/gradle/CocoaFrameworkLinkerIntegrationTest.kt +++ b/sentry-kotlin-multiplatform-gradle-plugin/src/test/java/io/sentry/kotlin/multiplatform/gradle/CocoaFrameworkLinkerIntegrationTest.kt @@ -45,7 +45,7 @@ class CocoaFrameworkLinkerIntegrationTest { .build() assertThat(output.toString()) - .contains("Set up Sentry Cocoa linking for target: iosSimulatorArm64") + .contains("Set up Sentry Cocoa linking for targets: [iosSimulatorArm64]") assertThat(output.toString()) .contains("Start resolving Sentry Cocoa framework paths for target: iosSimulatorArm64") }