[Gradle] Don't resolve Apple-specific Cinterops on Linux & Windows
Resolving such dependencies was lenient, however it produced a lot of annoying error messages in the IDE. Because "file not found". KGP already warns user if they are declared Apple-specific targets on non-macos machine. ^KT-66514 Verification Pending
This commit is contained in:
committed by
Space Team
parent
e2336e1752
commit
a56dc7d73a
+4
@@ -11,6 +11,7 @@ import org.jetbrains.kotlin.gradle.dsl.multiplatformExtensionOrNull
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinMetadataCompilation
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeCompilation
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinSharedNativeCompilation
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.enabledOnCurrentHost
|
||||
import org.jetbrains.kotlin.gradle.plugin.sources.DefaultKotlinSourceSet
|
||||
import org.jetbrains.kotlin.gradle.plugin.sources.internal
|
||||
import org.jetbrains.kotlin.gradle.tasks.CInteropProcess
|
||||
@@ -76,6 +77,9 @@ internal fun Project.getPlatformCinteropDependenciesOrEmpty(
|
||||
/* Participating in multiple compilations? -> can't propagate -> should be commonized */
|
||||
val compilation = compilations.singleOrNull() as? KotlinNativeCompilation ?: return@files emptySet<File>()
|
||||
|
||||
/* Apple-specific cinterops can't be produced on non-MacOs machines, so just return an empty dependencies collection */
|
||||
if (!compilation.target.konanTarget.enabledOnCurrentHost) return@files emptySet<File>()
|
||||
|
||||
(compilation.associatedCompilations + compilation)
|
||||
.filterIsInstance<KotlinNativeCompilation>()
|
||||
.filter(compilationFilter)
|
||||
|
||||
Reference in New Issue
Block a user