Get first platform from platformCompilations instead host platform.

Fixed #KMM-234
This commit is contained in:
Konstantin Tskhovrebov
2020-04-16 16:15:49 +03:00
parent 90fd2c6c4c
commit 6d7e428d89
3 changed files with 12 additions and 5 deletions
@@ -262,7 +262,12 @@ class KotlinMetadataTargetConfigurator(kotlinPluginVersion: String) :
val isNativeSourceSet = platformCompilations.all { compilation -> compilation.target is KotlinNativeTarget } val isNativeSourceSet = platformCompilations.all { compilation -> compilation.target is KotlinNativeTarget }
val compilationFactory: KotlinCompilationFactory<out AbstractKotlinCompilation<*>> = when { val compilationFactory: KotlinCompilationFactory<out AbstractKotlinCompilation<*>> = when {
isNativeSourceSet -> KotlinSharedNativeCompilationFactory(target) isNativeSourceSet -> KotlinSharedNativeCompilationFactory(
target,
//get FIRST platform for metadata compiling
//todo: get commonized platform libraries for metadata compiling
(platformCompilations.first() as KotlinNativeCompilation).konanTarget
)
else -> KotlinCommonCompilationFactory(target) else -> KotlinCommonCompilationFactory(target)
} }
@@ -97,8 +97,8 @@ class KotlinNativeCompilation(
get() = compileKotlinTask.kotlinOptions get() = compileKotlinTask.kotlinOptions
} }
class KotlinSharedNativeCompilation(override val target: KotlinMetadataTarget, name: String) : class KotlinSharedNativeCompilation(override val target: KotlinMetadataTarget, konanTarget: KonanTarget, name: String) :
AbstractKotlinNativeCompilation(target, HostManager.host, name), AbstractKotlinNativeCompilation(target, konanTarget, name),
KotlinMetadataCompilation<KotlinCommonOptions> { KotlinMetadataCompilation<KotlinCommonOptions> {
override val friendArtifacts: FileCollection override val friendArtifacts: FileCollection
@@ -7,6 +7,7 @@
package org.jetbrains.kotlin.gradle.plugin.mpp package org.jetbrains.kotlin.gradle.plugin.mpp
import org.jetbrains.kotlin.konan.target.HostManager import org.jetbrains.kotlin.konan.target.HostManager
import org.jetbrains.kotlin.konan.target.KonanTarget
class KotlinNativeCompilationFactory( class KotlinNativeCompilationFactory(
val target: KotlinNativeTarget val target: KotlinNativeTarget
@@ -24,11 +25,12 @@ class KotlinNativeCompilationFactory(
} }
class KotlinSharedNativeCompilationFactory( class KotlinSharedNativeCompilationFactory(
val target: KotlinMetadataTarget val target: KotlinMetadataTarget,
val konanTarget: KonanTarget
): KotlinCompilationFactory<KotlinSharedNativeCompilation> { ): KotlinCompilationFactory<KotlinSharedNativeCompilation> {
override val itemClass: Class<KotlinSharedNativeCompilation> override val itemClass: Class<KotlinSharedNativeCompilation>
get() = KotlinSharedNativeCompilation::class.java get() = KotlinSharedNativeCompilation::class.java
override fun create(name: String): KotlinSharedNativeCompilation = override fun create(name: String): KotlinSharedNativeCompilation =
KotlinSharedNativeCompilation(target, name) KotlinSharedNativeCompilation(target, konanTarget, name)
} }