curioustechizen
08/16/2024, 1:20 PMcurioustechizen
08/16/2024, 1:23 PM:shared module. One of its indirect (transitive) dependencies :feature:foo has code like this:
@JvmInline
@ObjCName("ClassId", exact = true)
interface ClassId {
val value: String
companion object {
fun from(value: String): ClassId = ClassIdImpl(value)
}
}
private data class ClassIdImpl(override val value: String) : ClassIdcurioustechizen
08/16/2024, 1:24 PMClassIdCompanion.shared.fom(value: "Blah") on the Swift side.curioustechizen
08/16/2024, 1:25 PM:shared module
export(projects.feature.foo)
// Also, instead of implementation, I need to use an api dependency
api(projects.feature.foo)curioustechizen
08/16/2024, 1:26 PMcurioustechizen
08/16/2024, 1:28 PMexport and replace my api with an implementation dependency?curioustechizen
08/16/2024, 1:29 PMextension ClassId {
static func from(_ value: String) -> ClassId {
return ClassIdCompanion.shared.from(value: value)
}
}curioustechizen
08/16/2024, 1:32 PM:shared module instead? Will that remove the need for the export and the api dependency? (since that's the module where I apply the SKIE plugin)curioustechizen
08/16/2024, 3:20 PMexport from my build.gradle.kts then the Swift files in the shared sourceSet do not compile.kpgalligan
08/16/2024, 3:55 PMfun classIdFactory(value: String): ClassId = ClassId.from(value)
Not pretty, but that'll solve your problem.kpgalligan
08/16/2024, 3:57 PMcurioustechizen
08/17/2024, 3:10 AMkpgalligan
08/17/2024, 3:16 AM