CLion/AppCode: Provide proper default platform instead of JVM
This commit is contained in:
committed by
Dmitriy Dolovov
parent
39b151e37b
commit
64800266f5
@@ -25,9 +25,11 @@ import com.intellij.openapi.roots.libraries.PersistentLibraryKind
|
|||||||
import com.intellij.openapi.util.io.JarUtil
|
import com.intellij.openapi.util.io.JarUtil
|
||||||
import com.intellij.openapi.vfs.*
|
import com.intellij.openapi.vfs.*
|
||||||
import org.jetbrains.kotlin.caches.resolve.IdePlatformKindResolution
|
import org.jetbrains.kotlin.caches.resolve.IdePlatformKindResolution
|
||||||
|
import org.jetbrains.kotlin.caches.resolve.resolution
|
||||||
import org.jetbrains.kotlin.idea.vfilefinder.KnownLibraryKindForIndex
|
import org.jetbrains.kotlin.idea.vfilefinder.KnownLibraryKindForIndex
|
||||||
import org.jetbrains.kotlin.idea.vfilefinder.getLibraryKindForJar
|
import org.jetbrains.kotlin.idea.vfilefinder.getLibraryKindForJar
|
||||||
import org.jetbrains.kotlin.js.resolve.JsPlatform
|
import org.jetbrains.kotlin.js.resolve.JsPlatform
|
||||||
|
import org.jetbrains.kotlin.platform.DefaultIdeTargetPlatformKindProvider
|
||||||
import org.jetbrains.kotlin.resolve.TargetPlatform
|
import org.jetbrains.kotlin.resolve.TargetPlatform
|
||||||
import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatform
|
import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatform
|
||||||
import org.jetbrains.kotlin.utils.PathUtil
|
import org.jetbrains.kotlin.utils.PathUtil
|
||||||
@@ -78,10 +80,14 @@ fun detectLibraryKind(roots: Array<VirtualFile>): PersistentLibraryKind<*>? {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return IdePlatformKindResolution
|
val matchingResolution =
|
||||||
.getInstances()
|
IdePlatformKindResolution
|
||||||
.firstOrNull { it.isLibraryFileForPlatform(jarFile) }
|
.getInstances()
|
||||||
?.libraryKind
|
.firstOrNull { it.isLibraryFileForPlatform(jarFile) }
|
||||||
|
|
||||||
|
if (matchingResolution != null) return matchingResolution.libraryKind
|
||||||
|
|
||||||
|
return DefaultIdeTargetPlatformKindProvider.defaultPlatform.kind.resolution.libraryKind
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getLibraryJar(roots: Array<VirtualFile>, jarPattern: Pattern): VirtualFile? {
|
fun getLibraryJar(roots: Array<VirtualFile>, jarPattern: Pattern): VirtualFile? {
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ import org.jetbrains.kotlin.idea.core.isAndroidModule
|
|||||||
import org.jetbrains.kotlin.idea.framework.KotlinSdkType
|
import org.jetbrains.kotlin.idea.framework.KotlinSdkType
|
||||||
import org.jetbrains.kotlin.idea.platform.tooling
|
import org.jetbrains.kotlin.idea.platform.tooling
|
||||||
import org.jetbrains.kotlin.idea.util.application.runWriteAction
|
import org.jetbrains.kotlin.idea.util.application.runWriteAction
|
||||||
|
import org.jetbrains.kotlin.platform.DefaultIdeTargetPlatformKindProvider
|
||||||
import org.jetbrains.kotlin.platform.IdePlatform
|
import org.jetbrains.kotlin.platform.IdePlatform
|
||||||
import org.jetbrains.kotlin.platform.IdePlatformKind
|
import org.jetbrains.kotlin.platform.IdePlatformKind
|
||||||
import org.jetbrains.kotlin.platform.impl.JvmIdePlatformKind
|
import org.jetbrains.kotlin.platform.impl.JvmIdePlatformKind
|
||||||
@@ -51,7 +52,7 @@ var Module.hasExternalSdkConfiguration: Boolean
|
|||||||
private fun getDefaultTargetPlatform(module: Module, rootModel: ModuleRootModel?): IdePlatform<*, *> {
|
private fun getDefaultTargetPlatform(module: Module, rootModel: ModuleRootModel?): IdePlatform<*, *> {
|
||||||
val platformKind = IdePlatformKind.ALL_KINDS.firstOrNull {
|
val platformKind = IdePlatformKind.ALL_KINDS.firstOrNull {
|
||||||
getRuntimeLibraryVersions(module, rootModel, it).isNotEmpty()
|
getRuntimeLibraryVersions(module, rootModel, it).isNotEmpty()
|
||||||
} ?: JvmIdePlatformKind
|
} ?: DefaultIdeTargetPlatformKindProvider.defaultPlatform.kind
|
||||||
if (platformKind == JvmIdePlatformKind) {
|
if (platformKind == JvmIdePlatformKind) {
|
||||||
var jvmTarget = Kotlin2JvmCompilerArgumentsHolder.getInstance(module.project).settings.jvmTarget?.let { JvmTarget.fromString(it) }
|
var jvmTarget = Kotlin2JvmCompilerArgumentsHolder.getInstance(module.project).settings.jvmTarget?.let { JvmTarget.fromString(it) }
|
||||||
if (jvmTarget == null) {
|
if (jvmTarget == null) {
|
||||||
|
|||||||
Reference in New Issue
Block a user