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.vfs.*
|
||||
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.getLibraryKindForJar
|
||||
import org.jetbrains.kotlin.js.resolve.JsPlatform
|
||||
import org.jetbrains.kotlin.platform.DefaultIdeTargetPlatformKindProvider
|
||||
import org.jetbrains.kotlin.resolve.TargetPlatform
|
||||
import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatform
|
||||
import org.jetbrains.kotlin.utils.PathUtil
|
||||
@@ -78,10 +80,14 @@ fun detectLibraryKind(roots: Array<VirtualFile>): PersistentLibraryKind<*>? {
|
||||
}
|
||||
}
|
||||
|
||||
return IdePlatformKindResolution
|
||||
.getInstances()
|
||||
.firstOrNull { it.isLibraryFileForPlatform(jarFile) }
|
||||
?.libraryKind
|
||||
val matchingResolution =
|
||||
IdePlatformKindResolution
|
||||
.getInstances()
|
||||
.firstOrNull { it.isLibraryFileForPlatform(jarFile) }
|
||||
|
||||
if (matchingResolution != null) return matchingResolution.libraryKind
|
||||
|
||||
return DefaultIdeTargetPlatformKindProvider.defaultPlatform.kind.resolution.libraryKind
|
||||
}
|
||||
|
||||
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.platform.tooling
|
||||
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.IdePlatformKind
|
||||
import org.jetbrains.kotlin.platform.impl.JvmIdePlatformKind
|
||||
@@ -51,7 +52,7 @@ var Module.hasExternalSdkConfiguration: Boolean
|
||||
private fun getDefaultTargetPlatform(module: Module, rootModel: ModuleRootModel?): IdePlatform<*, *> {
|
||||
val platformKind = IdePlatformKind.ALL_KINDS.firstOrNull {
|
||||
getRuntimeLibraryVersions(module, rootModel, it).isNotEmpty()
|
||||
} ?: JvmIdePlatformKind
|
||||
} ?: DefaultIdeTargetPlatformKindProvider.defaultPlatform.kind
|
||||
if (platformKind == JvmIdePlatformKind) {
|
||||
var jvmTarget = Kotlin2JvmCompilerArgumentsHolder.getInstance(module.project).settings.jvmTarget?.let { JvmTarget.fromString(it) }
|
||||
if (jvmTarget == null) {
|
||||
|
||||
Reference in New Issue
Block a user