HMPP: Evaluate exact TargetPlatform for each K/N KLIB library
This commit is contained in:
@@ -52,6 +52,9 @@ object NativePlatforms {
|
||||
}
|
||||
}
|
||||
|
||||
fun nativePlatformByTargetNames(targets: Collection<String>): TargetPlatform =
|
||||
nativePlatformByTargets(targets.mapNotNull { KonanTarget.predefinedTargets[it] })
|
||||
|
||||
@Deprecated(
|
||||
message = "Should be accessed only by compatibility layer, other clients should use 'unspecifiedNativePlatform'",
|
||||
level = DeprecationLevel.ERROR
|
||||
|
||||
+1
-5
@@ -30,7 +30,6 @@ import org.jetbrains.kotlin.idea.inspections.gradle.findAll
|
||||
import org.jetbrains.kotlin.idea.inspections.gradle.findKotlinPluginVersion
|
||||
import org.jetbrains.kotlin.idea.platform.IdePlatformKindTooling
|
||||
import org.jetbrains.kotlin.idea.roots.migrateNonJvmSourceFolders
|
||||
import org.jetbrains.kotlin.konan.target.KonanTarget
|
||||
import org.jetbrains.kotlin.platform.TargetPlatform
|
||||
import org.jetbrains.kotlin.platform.impl.JvmIdePlatformKind
|
||||
import org.jetbrains.kotlin.platform.impl.NativeIdePlatformKind
|
||||
@@ -111,10 +110,7 @@ class KotlinSourceSetDataService : AbstractProjectDataService<GradleSourceSetDat
|
||||
val jvmTarget = JvmTarget.fromString(moduleData.targetCompatibility ?: "") ?: JvmTarget.DEFAULT
|
||||
JvmPlatforms.jvmPlatformByTargetVersion(jvmTarget).componentPlatforms
|
||||
}
|
||||
is NativeIdePlatformKind -> {
|
||||
val nativeTargets = moduleData.konanTargets.mapNotNull { KonanTarget.predefinedTargets[it] }
|
||||
NativePlatforms.nativePlatformByTargets(nativeTargets)
|
||||
}
|
||||
is NativeIdePlatformKind -> NativePlatforms.nativePlatformByTargetNames(moduleData.konanTargets)
|
||||
else -> platformKind.defaultPlatform.componentPlatforms
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,7 +42,9 @@ import org.jetbrains.kotlin.platform.impl.NativeIdePlatformKind
|
||||
import org.jetbrains.kotlin.resolve.ImplicitIntegerCoercion
|
||||
import org.jetbrains.kotlin.resolve.TargetEnvironment
|
||||
import org.jetbrains.kotlin.library.metadata.NullFlexibleTypeDeserializer
|
||||
import org.jetbrains.kotlin.library.nativeTargets
|
||||
import org.jetbrains.kotlin.platform.konan.NativePlatforms
|
||||
import org.jetbrains.kotlin.platform.konan.NativePlatforms.nativePlatformByTargetNames
|
||||
import org.jetbrains.kotlin.serialization.konan.impl.KlibMetadataModuleDescriptorFactoryImpl
|
||||
import org.jetbrains.kotlin.storage.StorageManager
|
||||
|
||||
@@ -161,7 +163,7 @@ class NativeKlibLibraryInfo(project: Project, library: Library, libraryRoot: Str
|
||||
return capabilities
|
||||
}
|
||||
|
||||
override val platform: TargetPlatform
|
||||
// TODO: detect native platform by library
|
||||
get() = NativePlatforms.unspecifiedNativePlatform
|
||||
override val platform: TargetPlatform by lazy {
|
||||
nativePlatformByTargetNames(resolvedKotlinLibrary.safeRead(emptyList()) { nativeTargets })
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user