@@ -40,8 +40,12 @@ kotlin {
4040 }
4141
4242 sourceSets {
43- commonMain.dependencies {
44- api(project(" :skainet-lang:skainet-lang-ksp-annotations" ))
43+ commonMain {
44+ // Include KSP-generated sources in commonMain so downstream modules can access them
45+ kotlin.srcDir(" build/generated/ksp/metadata/commonMain/kotlin" )
46+ dependencies {
47+ api(project(" :skainet-lang:skainet-lang-ksp-annotations" ))
48+ }
4549 }
4650
4751 commonTest.dependencies {
@@ -50,18 +54,18 @@ kotlin {
5054 }
5155}
5256
57+ // Ensure KSP metadata task runs before any Kotlin compilation and other KSP tasks
58+ tasks.configureEach {
59+ if (name != " kspCommonMainKotlinMetadata" &&
60+ (name.startsWith(" compileKotlin" ) || name.startsWith(" ksp" ))) {
61+ dependsOn(" kspCommonMainKotlinMetadata" )
62+ }
63+ }
64+
5365dependencies {
54- // KSP processor for generating tracing wrappers
66+ // KSP processor for generating tracing wrappers - only for commonMain metadata
67+ // to avoid duplicate class generation across targets
5568 add(" kspCommonMainMetadata" , project(" :skainet-lang:skainet-lang-ksp-processor" ))
56- add(" kspJvm" , project(" :skainet-lang:skainet-lang-ksp-processor" ))
57- add(" kspAndroid" , project(" :skainet-lang:skainet-lang-ksp-processor" ))
58- add(" kspIosArm64" , project(" :skainet-lang:skainet-lang-ksp-processor" ))
59- add(" kspIosSimulatorArm64" , project(" :skainet-lang:skainet-lang-ksp-processor" ))
60- add(" kspMacosArm64" , project(" :skainet-lang:skainet-lang-ksp-processor" ))
61- add(" kspLinuxX64" , project(" :skainet-lang:skainet-lang-ksp-processor" ))
62- add(" kspLinuxArm64" , project(" :skainet-lang:skainet-lang-ksp-processor" ))
63- add(" kspJs" , project(" :skainet-lang:skainet-lang-ksp-processor" ))
64- add(" kspWasmJs" , project(" :skainet-lang:skainet-lang-ksp-processor" ))
6569}
6670
6771android {
0 commit comments