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