diff --git a/shared/build.gradle.kts b/shared/build.gradle.kts
index 1d03c5f74..dd9041476 100644
--- a/shared/build.gradle.kts
+++ b/shared/build.gradle.kts
@@ -1,3 +1,5 @@
+import com.thomaskioko.tvmaniac.plugins.addKspDependencyForAllTargets
+
 plugins {
     id("plugin.tvmaniac.kotlin.android")
     id("plugin.tvmaniac.multiplatform")
@@ -60,8 +62,6 @@ kotlin {
                 api(projects.data.similar.implementation)
                 api(projects.data.trailers.api)
                 api(projects.data.trailers.implementation)
-
-                implementation(libs.kotlinInject.runtime)
             }
         }
     }
@@ -75,11 +75,7 @@ ksp {
     arg("me.tatarka.inject.generateCompanionExtensions", "true")
 }
 
-dependencies {
-    add("kspAndroid", libs.kotlinInject.compiler)
-    add("kspIosX64", libs.kotlinInject.compiler)
-    add("kspIosArm64", libs.kotlinInject.compiler)
-}
+addKspDependencyForAllTargets(libs.kotlinInject.compiler)
 
 multiplatformSwiftPackage {
     packageName("TvManiac")
diff --git a/tooling/plugins/src/main/kotlin/com/thomaskioko/tvmaniac/plugins/KotlinMultiplatformConventionPlugin.kt b/tooling/plugins/src/main/kotlin/com/thomaskioko/tvmaniac/plugins/KotlinMultiplatformConventionPlugin.kt
index db90cea7f..f704880a9 100644
--- a/tooling/plugins/src/main/kotlin/com/thomaskioko/tvmaniac/plugins/KotlinMultiplatformConventionPlugin.kt
+++ b/tooling/plugins/src/main/kotlin/com/thomaskioko/tvmaniac/plugins/KotlinMultiplatformConventionPlugin.kt
@@ -4,10 +4,13 @@ import com.thomaskioko.tvmaniac.extensions.configureKotlin
 import com.thomaskioko.tvmaniac.extensions.libs
 import org.gradle.api.Plugin
 import org.gradle.api.Project
+import org.gradle.configurationcache.extensions.capitalized
 import org.gradle.kotlin.dsl.configure
+import org.gradle.kotlin.dsl.dependencies
+import org.gradle.kotlin.dsl.getByType
 import org.gradle.kotlin.dsl.withType
-import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
 import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
+import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
 import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget
 
 class KotlinMultiplatformConventionPlugin : Plugin<Project> {
@@ -63,4 +66,26 @@ class KotlinMultiplatformConventionPlugin : Plugin<Project> {
             configureKotlin()
         }
     }
+}
+
+fun Project.addKspDependencyForAllTargets(dependencyNotation: Any) = addKspDependencyForAllTargets("", dependencyNotation)
+private fun Project.addKspDependencyForAllTargets(
+    configurationNameSuffix: String,
+    dependencyNotation: Any,
+) {
+    val kmpExtension = extensions.getByType<KotlinMultiplatformExtension>()
+    dependencies {
+        kmpExtension.targets
+            .asSequence()
+            .filter { target ->
+                // Don't add KSP for common target, only final platforms
+                target.platformType != KotlinPlatformType.common
+            }
+            .forEach { target ->
+                add(
+                    "ksp${target.targetName.capitalized()}$configurationNameSuffix",
+                    dependencyNotation,
+                )
+            }
+    }
 }
\ No newline at end of file