This repository was archived by the owner on Jun 3, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 48
This repository was archived by the owner on Jun 3, 2025. It is now read-only.
Middle nativeMain module with specific iosMain and macOSMain fails. #43
Copy link
Copy link
Open
Description
Not sure if this is expected, do have a project with a middle nativeMain source set for specific iosMain & macOSMain source set
- commonMain
- nativeMain
- iosMain
- macOSMain
build.gradle.kts
macosX64("native")
macosX64("macOS") {
binaries {
framework {
baseName = "shared"
}
}
}
ios() {
binaries {
framework {
baseName = "shared"
}
}
}
...
val nativeMain by getting {
dependencies {
implementation(libs.sqlDelight.native)
implementation(libs.ktor.client.core)
implementation(libs.coroutines.core)
implementation(libs.multiplatformSettings.common)
}
}
val iosMain by getting {
dependsOn(nativeMain)
dependencies {
implementation(libs.ktor.client.ios)
val coroutineCore = libs.coroutines.core.get()
implementation("${coroutineCore.module.group}:${coroutineCore.module.name}:${coroutineCore.versionConstraint.displayName}") {
version {
strictly(libs.versions.coroutines.native.get())
}
}
}
}
val macOSMain by getting {
dependsOn(nativeMain)
dependencies {
implementation("io.ktor:ktor-client-curl:2.0.0-beta-1")
}
}
...
multiplatformSwiftPackage {
packageName("sharedValkyrie")
swiftToolsVersion("5.3")
targetPlatforms {
iOS { v("13") }
macOS { v("11") }
}
}
Inside commonMain I have multiple expect class ... that are defined only in iosMain and macOSMain and not in nativeMain, such as UserAgent strings, platform name, etc. After gradle sync, those expect classes are solved properly without any errors but when running createSwiftPackage gradle task, I receive that there are no expect declarations in nativeMain module:
Expected class 'Platform' has no actual declaration in module <mySharedModule> for Native
Shouldn't just execute compileKotlinIos and compileKotlinMacOS and skip compileKotlinNative?
Is there a workaround to do this?
Metadata
Metadata
Assignees
Labels
No labels