[KLIB] Extract "ir_provider" manifest property name as a const val
This commit is contained in:
committed by
Space Team
parent
b1faee5ec6
commit
72525a22a6
+2
-1
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.library.metadata
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.descriptors.SourceFile
|
import org.jetbrains.kotlin.descriptors.SourceFile
|
||||||
import org.jetbrains.kotlin.konan.library.KLIB_INTEROP_IR_PROVIDER_IDENTIFIER
|
import org.jetbrains.kotlin.konan.library.KLIB_INTEROP_IR_PROVIDER_IDENTIFIER
|
||||||
|
import org.jetbrains.kotlin.library.KLIB_PROPERTY_IR_PROVIDER
|
||||||
import org.jetbrains.kotlin.library.KotlinLibrary
|
import org.jetbrains.kotlin.library.KotlinLibrary
|
||||||
import org.jetbrains.kotlin.library.metadata.KlibMetadataProtoBuf.Header
|
import org.jetbrains.kotlin.library.metadata.KlibMetadataProtoBuf.Header
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
@@ -44,4 +45,4 @@ class KlibDeserializedContainerSource(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun KotlinLibrary.isInteropLibrary() =
|
private fun KotlinLibrary.isInteropLibrary() =
|
||||||
manifestProperties["ir_provider"] == KLIB_INTEROP_IR_PROVIDER_IDENTIFIER
|
manifestProperties[KLIB_PROPERTY_IR_PROVIDER] == KLIB_INTEROP_IR_PROVIDER_IDENTIFIER
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ const val KLIB_PROPERTY_CONTAINS_ERROR_CODE = "contains_error_code"
|
|||||||
const val KLIB_PROPERTY_INTEROP = "interop"
|
const val KLIB_PROPERTY_INTEROP = "interop"
|
||||||
const val KLIB_PROPERTY_EXPORT_FORWARD_DECLARATIONS = "exportForwardDeclarations"
|
const val KLIB_PROPERTY_EXPORT_FORWARD_DECLARATIONS = "exportForwardDeclarations"
|
||||||
const val KLIB_PROPERTY_INCLUDED_FORWARD_DECLARATIONS = "includedForwardDeclarations"
|
const val KLIB_PROPERTY_INCLUDED_FORWARD_DECLARATIONS = "includedForwardDeclarations"
|
||||||
|
const val KLIB_PROPERTY_IR_PROVIDER = "ir_provider"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Copy-pasted to `kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/Utils.kt`
|
* Copy-pasted to `kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/Utils.kt`
|
||||||
|
|||||||
@@ -253,7 +253,7 @@ abstract class KotlinLibraryProperResolverWithAttributes<L : KotlinLibrary>(
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
candidate.manifestProperties["ir_provider"]?.let {
|
candidate.manifestProperties[KLIB_PROPERTY_IR_PROVIDER]?.let {
|
||||||
if (it !in knownIrProviders) {
|
if (it !in knownIrProviders) {
|
||||||
logger.warning("skipping $candidatePath. The library requires unknown IR provider $it.")
|
logger.warning("skipping $candidatePath. The library requires unknown IR provider $it.")
|
||||||
return false
|
return false
|
||||||
|
|||||||
+2
-1
@@ -31,6 +31,7 @@ import org.jetbrains.kotlin.konan.target.KonanTarget
|
|||||||
import org.jetbrains.kotlin.konan.util.DefFile
|
import org.jetbrains.kotlin.konan.util.DefFile
|
||||||
import org.jetbrains.kotlin.konan.util.KonanHomeProvider
|
import org.jetbrains.kotlin.konan.util.KonanHomeProvider
|
||||||
import org.jetbrains.kotlin.konan.util.usingNativeMemoryAllocator
|
import org.jetbrains.kotlin.konan.util.usingNativeMemoryAllocator
|
||||||
|
import org.jetbrains.kotlin.library.KLIB_PROPERTY_IR_PROVIDER
|
||||||
import org.jetbrains.kotlin.library.KotlinLibrary
|
import org.jetbrains.kotlin.library.KotlinLibrary
|
||||||
import org.jetbrains.kotlin.library.metadata.resolver.TopologicalLibraryOrder
|
import org.jetbrains.kotlin.library.metadata.resolver.TopologicalLibraryOrder
|
||||||
import org.jetbrains.kotlin.library.metadata.resolver.impl.KotlinLibraryResolverImpl
|
import org.jetbrains.kotlin.library.metadata.resolver.impl.KotlinLibraryResolverImpl
|
||||||
@@ -378,7 +379,7 @@ private fun processCLib(
|
|||||||
}
|
}
|
||||||
def.manifestAddendProperties["interop"] = "true"
|
def.manifestAddendProperties["interop"] = "true"
|
||||||
if (stubIrOutput is StubIrDriver.Result.Metadata) {
|
if (stubIrOutput is StubIrDriver.Result.Metadata) {
|
||||||
def.manifestAddendProperties["ir_provider"] = KLIB_INTEROP_IR_PROVIDER_IDENTIFIER
|
def.manifestAddendProperties[KLIB_PROPERTY_IR_PROVIDER] = KLIB_INTEROP_IR_PROVIDER_IDENTIFIER
|
||||||
}
|
}
|
||||||
stubIrContext.addManifestProperties(def.manifestAddendProperties)
|
stubIrContext.addManifestProperties(def.manifestAddendProperties)
|
||||||
// cinterop command line option overrides def file property
|
// cinterop command line option overrides def file property
|
||||||
|
|||||||
+2
-1
@@ -15,6 +15,7 @@ import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction
|
|||||||
import org.jetbrains.kotlin.ir.descriptors.IrBasedDeclarationDescriptor
|
import org.jetbrains.kotlin.ir.descriptors.IrBasedDeclarationDescriptor
|
||||||
import org.jetbrains.kotlin.konan.library.KLIB_INTEROP_IR_PROVIDER_IDENTIFIER
|
import org.jetbrains.kotlin.konan.library.KLIB_INTEROP_IR_PROVIDER_IDENTIFIER
|
||||||
import org.jetbrains.kotlin.library.BaseKotlinLibrary
|
import org.jetbrains.kotlin.library.BaseKotlinLibrary
|
||||||
|
import org.jetbrains.kotlin.library.KLIB_PROPERTY_IR_PROVIDER
|
||||||
import org.jetbrains.kotlin.library.metadata.DeserializedKlibModuleOrigin
|
import org.jetbrains.kotlin.library.metadata.DeserializedKlibModuleOrigin
|
||||||
import org.jetbrains.kotlin.library.metadata.KlibDeserializedContainerSource
|
import org.jetbrains.kotlin.library.metadata.KlibDeserializedContainerSource
|
||||||
import org.jetbrains.kotlin.library.metadata.klibModuleOrigin
|
import org.jetbrains.kotlin.library.metadata.klibModuleOrigin
|
||||||
@@ -53,7 +54,7 @@ val ModuleDescriptor.isForwardDeclarationModule: Boolean
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun BaseKotlinLibrary.isInteropLibrary() =
|
fun BaseKotlinLibrary.isInteropLibrary() =
|
||||||
manifestProperties["ir_provider"] == KLIB_INTEROP_IR_PROVIDER_IDENTIFIER
|
manifestProperties[KLIB_PROPERTY_IR_PROVIDER] == KLIB_INTEROP_IR_PROVIDER_IDENTIFIER
|
||||||
|
|
||||||
fun DeclarationDescriptor.isFromInteropLibrary(): Boolean =
|
fun DeclarationDescriptor.isFromInteropLibrary(): Boolean =
|
||||||
this.isFromFirDeserializedInteropLibrary() || this.module.isFromInteropLibrary()
|
this.isFromFirDeserializedInteropLibrary() || this.module.isFromInteropLibrary()
|
||||||
|
|||||||
Reference in New Issue
Block a user