KLIB: Fix compilation
This commit is contained in:
+1
-1
@@ -131,7 +131,7 @@ class CompositeResolverForModuleFactory(
|
|||||||
var klibMetadataProvider: PackageFragmentProvider? = null
|
var klibMetadataProvider: PackageFragmentProvider? = null
|
||||||
|
|
||||||
if (moduleInfo is CommonKlibLibraryInfo && moduleInfo.compatibilityInfo.isCompatible) {
|
if (moduleInfo is CommonKlibLibraryInfo && moduleInfo.compatibilityInfo.isCompatible) {
|
||||||
val library = moduleInfo.commonLibrary
|
val library = moduleInfo.resolvedKotlinLibrary
|
||||||
val languageVersionSettings = container.get<LanguageVersionSettings>()
|
val languageVersionSettings = container.get<LanguageVersionSettings>()
|
||||||
|
|
||||||
val packageFragmentNames = parseModuleHeader(library.moduleHeaderData).packageFragmentNameList
|
val packageFragmentNames = parseModuleHeader(library.moduleHeaderData).packageFragmentNameList
|
||||||
|
|||||||
@@ -1,10 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
|
||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
|
||||||
*/
|
|
||||||
package org.jetbrains.kotlin.ide.konan.decompiler
|
|
||||||
|
|
||||||
import org.jetbrains.kotlin.idea.klib.KlibMetaFileType
|
|
||||||
import org.jetbrains.kotlin.idea.util.KotlinBinaryExtension
|
|
||||||
|
|
||||||
class KlibMetaBinary : KotlinBinaryExtension(KlibMetaFileType)
|
|
||||||
@@ -13,7 +13,7 @@ import org.jetbrains.kotlin.konan.file.File
|
|||||||
import org.jetbrains.kotlin.library.ToolingSingleFileKlibResolveStrategy
|
import org.jetbrains.kotlin.library.ToolingSingleFileKlibResolveStrategy
|
||||||
import org.jetbrains.kotlin.library.resolveSingleFileKlib
|
import org.jetbrains.kotlin.library.resolveSingleFileKlib
|
||||||
|
|
||||||
abstract class AbstractKlibLibraryInfo(project: Project, library: Library, protected val libraryRoot: String) : LibraryInfo(project, library) {
|
abstract class AbstractKlibLibraryInfo(project: Project, library: Library, val libraryRoot: String) : LibraryInfo(project, library) {
|
||||||
|
|
||||||
val resolvedKotlinLibrary = resolveSingleFileKlib(
|
val resolvedKotlinLibrary = resolveSingleFileKlib(
|
||||||
libraryFile = File(libraryRoot),
|
libraryFile = File(libraryRoot),
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ import org.jetbrains.kotlin.idea.KotlinModuleFileType
|
|||||||
import org.jetbrains.kotlin.idea.core.script.ScriptConfigurationManager
|
import org.jetbrains.kotlin.idea.core.script.ScriptConfigurationManager
|
||||||
import org.jetbrains.kotlin.idea.decompiler.builtIns.KotlinBuiltInFileType
|
import org.jetbrains.kotlin.idea.decompiler.builtIns.KotlinBuiltInFileType
|
||||||
import org.jetbrains.kotlin.idea.decompiler.js.KotlinJavaScriptMetaFileType
|
import org.jetbrains.kotlin.idea.decompiler.js.KotlinJavaScriptMetaFileType
|
||||||
|
import org.jetbrains.kotlin.idea.klib.KlibMetaFileType
|
||||||
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
||||||
import org.jetbrains.kotlin.scripting.definitions.findScriptDefinition
|
import org.jetbrains.kotlin.scripting.definitions.findScriptDefinition
|
||||||
import kotlin.script.experimental.api.ScriptAcceptedLocation
|
import kotlin.script.experimental.api.ScriptAcceptedLocation
|
||||||
@@ -50,6 +51,7 @@ class JavaClassBinary : KotlinBinaryExtension(JavaClassFileType.INSTANCE)
|
|||||||
class KotlinBuiltInBinary : KotlinBinaryExtension(KotlinBuiltInFileType)
|
class KotlinBuiltInBinary : KotlinBinaryExtension(KotlinBuiltInFileType)
|
||||||
class KotlinModuleBinary : KotlinBinaryExtension(KotlinModuleFileType.INSTANCE)
|
class KotlinModuleBinary : KotlinBinaryExtension(KotlinModuleFileType.INSTANCE)
|
||||||
class KotlinJsMetaBinary : KotlinBinaryExtension(KotlinJavaScriptMetaFileType)
|
class KotlinJsMetaBinary : KotlinBinaryExtension(KotlinJavaScriptMetaFileType)
|
||||||
|
class KlibMetaBinary : KotlinBinaryExtension(KlibMetaFileType)
|
||||||
|
|
||||||
fun FileType.isKotlinBinary(): Boolean = this in KotlinBinaryExtension.kotlinBinaries
|
fun FileType.isKotlinBinary(): Boolean = this in KotlinBinaryExtension.kotlinBinaries
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -8,10 +8,10 @@ package org.jetbrains.kotlin.ide.konan
|
|||||||
import com.intellij.openapi.module.Module
|
import com.intellij.openapi.module.Module
|
||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
import com.intellij.psi.search.GlobalSearchScope
|
import com.intellij.psi.search.GlobalSearchScope
|
||||||
import org.jetbrains.kotlin.ide.konan.index.KotlinNativeMetaFileIndex
|
|
||||||
import org.jetbrains.kotlin.idea.configuration.LibraryKindSearchScope
|
import org.jetbrains.kotlin.idea.configuration.LibraryKindSearchScope
|
||||||
import org.jetbrains.kotlin.idea.configuration.hasKotlinFilesOnlyInTests
|
import org.jetbrains.kotlin.idea.configuration.hasKotlinFilesOnlyInTests
|
||||||
import org.jetbrains.kotlin.idea.util.runReadActionInSmartMode
|
import org.jetbrains.kotlin.idea.util.runReadActionInSmartMode
|
||||||
|
import org.jetbrains.kotlin.idea.vfilefinder.KlibMetaFileIndex
|
||||||
import org.jetbrains.kotlin.idea.vfilefinder.hasSomethingInPackage
|
import org.jetbrains.kotlin.idea.vfilefinder.hasSomethingInPackage
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
|
|
||||||
@@ -23,5 +23,5 @@ fun hasKotlinNativeRuntimeInScope(module: Module): Boolean = module.project.runR
|
|||||||
private val KOTLIN_NATIVE_FQ_NAME = FqName("kotlin.native")
|
private val KOTLIN_NATIVE_FQ_NAME = FqName("kotlin.native")
|
||||||
|
|
||||||
fun hasKotlinNativeMetadataFile(project: Project, scope: GlobalSearchScope): Boolean = project.runReadActionInSmartMode {
|
fun hasKotlinNativeMetadataFile(project: Project, scope: GlobalSearchScope): Boolean = project.runReadActionInSmartMode {
|
||||||
KotlinNativeMetaFileIndex.hasSomethingInPackage(KOTLIN_NATIVE_FQ_NAME, scope)
|
KlibMetaFileIndex.hasSomethingInPackage(KOTLIN_NATIVE_FQ_NAME, scope)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,8 @@ import com.intellij.openapi.roots.libraries.LibraryType
|
|||||||
import com.intellij.openapi.roots.libraries.ui.LibraryEditorComponent
|
import com.intellij.openapi.roots.libraries.ui.LibraryEditorComponent
|
||||||
import com.intellij.openapi.vfs.VirtualFile
|
import com.intellij.openapi.vfs.VirtualFile
|
||||||
import org.jetbrains.kotlin.idea.KotlinIcons
|
import org.jetbrains.kotlin.idea.KotlinIcons
|
||||||
|
import org.jetbrains.kotlin.idea.klib.isKlibLibraryRootForPlatform
|
||||||
|
import org.jetbrains.kotlin.platform.konan.KonanPlatforms
|
||||||
import javax.swing.Icon
|
import javax.swing.Icon
|
||||||
import javax.swing.JComponent
|
import javax.swing.JComponent
|
||||||
|
|
||||||
@@ -23,7 +25,7 @@ object NativeLibraryType : LibraryType<DummyLibraryProperties>(NativeLibraryKind
|
|||||||
// However this does not work for libraries that are to be just created during project build, e.g. C-interop Kotlin/Native KLIBs.
|
// However this does not work for libraries that are to be just created during project build, e.g. C-interop Kotlin/Native KLIBs.
|
||||||
// The code below helps to perform postponed detection of Kotlin/Native libraries.
|
// The code below helps to perform postponed detection of Kotlin/Native libraries.
|
||||||
override fun detect(classesRoots: List<VirtualFile>): DummyLibraryProperties? =
|
override fun detect(classesRoots: List<VirtualFile>): DummyLibraryProperties? =
|
||||||
if (classesRoots.firstOrNull()?.isKonanLibraryRoot == true)
|
if (classesRoots.firstOrNull()?.isKlibLibraryRootForPlatform(KonanPlatforms.defaultKonanPlatform) == true)
|
||||||
DummyLibraryProperties.INSTANCE!!
|
DummyLibraryProperties.INSTANCE!!
|
||||||
else null
|
else null
|
||||||
|
|
||||||
|
|||||||
@@ -1,14 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
|
||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.jetbrains.kotlin.ide.konan.index
|
|
||||||
|
|
||||||
import com.intellij.util.indexing.FileBasedIndex
|
|
||||||
import org.jetbrains.kotlin.idea.klib.KlibLoadingMetadataCache
|
|
||||||
import org.jetbrains.kotlin.idea.klib.KlibMetaFileType
|
|
||||||
import org.jetbrains.kotlin.idea.vfilefinder.KotlinFileIndexBase
|
|
||||||
import org.jetbrains.kotlin.library.metadata.KlibMetadataProtoBuf
|
|
||||||
import org.jetbrains.kotlin.name.FqName
|
|
||||||
|
|
||||||
@@ -26,7 +26,7 @@
|
|||||||
</extensions>
|
</extensions>
|
||||||
|
|
||||||
<extensions defaultExtensionNs="org.jetbrains.kotlin">
|
<extensions defaultExtensionNs="org.jetbrains.kotlin">
|
||||||
<binaryExtension implementation="org.jetbrains.kotlin.ide.konan.decompiler.KotlinNativeMetaBinary"/>
|
<binaryExtension implementation="org.jetbrains.kotlin.idea.util.KlibMetaBinary"/>
|
||||||
<idePlatformKind implementation="org.jetbrains.kotlin.platform.impl.NativeIdePlatformKind"/>
|
<idePlatformKind implementation="org.jetbrains.kotlin.platform.impl.NativeIdePlatformKind"/>
|
||||||
<idePlatformKindTooling implementation="org.jetbrains.kotlin.ide.konan.NativeIdePlatformKindTooling"/>
|
<idePlatformKindTooling implementation="org.jetbrains.kotlin.ide.konan.NativeIdePlatformKindTooling"/>
|
||||||
<idePlatformKindResolution implementation="org.jetbrains.kotlin.ide.konan.NativePlatformKindResolution"/>
|
<idePlatformKindResolution implementation="org.jetbrains.kotlin.ide.konan.NativePlatformKindResolution"/>
|
||||||
|
|||||||
Reference in New Issue
Block a user