From 343e8c6f84a0bbdc5727b2313f068db56823d756 Mon Sep 17 00:00:00 2001 From: Ilya Matveev Date: Tue, 24 Mar 2020 17:02:24 +0700 Subject: [PATCH] [KLIB] Add short_name to klib manifest Fixes for KT-36720 and KT-36721 change a scheme that is used to generate unique names for klibs: now we use "fully qualified" names that include a group and a name of a library (e.g. org.jetbrains.kotlin. native.posix). But in some cases we still need short library names for Kotlin/Native. For example to display platform libs in the IDE or to export some symbols of a library to an ObjC framework. This patch introduces a corresponding property to klib manifest. --- .../src/org/jetbrains/kotlin/library/KotlinLibrary.kt | 4 ++++ .../kotlin/library/impl/KotlinLibraryWriterImpl.kt | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/compiler/util-klib/src/org/jetbrains/kotlin/library/KotlinLibrary.kt b/compiler/util-klib/src/org/jetbrains/kotlin/library/KotlinLibrary.kt index 751de418cc1..f982f180ba4 100644 --- a/compiler/util-klib/src/org/jetbrains/kotlin/library/KotlinLibrary.kt +++ b/compiler/util-klib/src/org/jetbrains/kotlin/library/KotlinLibrary.kt @@ -16,6 +16,7 @@ const val KLIB_PROPERTY_PACKAGE = "package" const val KLIB_PROPERTY_INTEROP = "interop" const val KLIB_PROPERTY_EXPORT_FORWARD_DECLARATIONS = "exportForwardDeclarations" const val KLIB_PROPERTY_BUILTINS_PLATFORM = "builtins_platform" +const val KLIB_PROPERTY_SHORT_NAME = "short_name" /** * Abstractions for getting access to the information stored inside of Kotlin/Native library. @@ -52,6 +53,9 @@ interface IrLibrary { val BaseKotlinLibrary.uniqueName: String get() = manifestProperties.getProperty(KLIB_PROPERTY_UNIQUE_NAME)!! +val BaseKotlinLibrary.shortName: String? + get() = manifestProperties.getProperty(KLIB_PROPERTY_SHORT_NAME) + val BaseKotlinLibrary.unresolvedDependencies: List get() = manifestProperties.propertyList(KLIB_PROPERTY_DEPENDS, escapeInQuotes = true) .map { UnresolvedLibrary(it, manifestProperties.getProperty("dependency_version_$it")) } diff --git a/compiler/util-klib/src/org/jetbrains/kotlin/library/impl/KotlinLibraryWriterImpl.kt b/compiler/util-klib/src/org/jetbrains/kotlin/library/impl/KotlinLibraryWriterImpl.kt index e8f7eb91fd0..6961544849d 100644 --- a/compiler/util-klib/src/org/jetbrains/kotlin/library/impl/KotlinLibraryWriterImpl.kt +++ b/compiler/util-klib/src/org/jetbrains/kotlin/library/impl/KotlinLibraryWriterImpl.kt @@ -23,7 +23,8 @@ open class BaseWriterImpl( moduleName: String, override val versions: KotlinLibraryVersioning, builtInsPlatform: BuiltInsPlatform, - val nopack: Boolean = false + val nopack: Boolean = false, + val shortName: String? = null ) : BaseWriter { val klibFile = File("${libraryLayout.libDir.path}.$KLIB_FILE_EXTENSION") @@ -40,6 +41,9 @@ open class BaseWriterImpl( manifestProperties.writeKonanLibraryVersioning(versions) if (builtInsPlatform != BuiltInsPlatform.COMMON) manifestProperties.setProperty(KLIB_PROPERTY_BUILTINS_PLATFORM, builtInsPlatform.name) + shortName?.let { + manifestProperties.setProperty(KLIB_PROPERTY_SHORT_NAME, it) + } } override fun addLinkDependencies(libraries: List) {