[CLI] Allow using -Xshort-module-name for klib compilation only
This commit is contained in:
committed by
Ilya Matveev
parent
92228d44af
commit
721a84ea44
@@ -124,7 +124,6 @@ class K2Native : CLICompiler<K2NativeCompilerArguments>() {
|
|||||||
put(LINKER_ARGS, arguments.linkerArguments.toNonNullList() +
|
put(LINKER_ARGS, arguments.linkerArguments.toNonNullList() +
|
||||||
arguments.singleLinkerArguments.toNonNullList())
|
arguments.singleLinkerArguments.toNonNullList())
|
||||||
arguments.moduleName?.let{ put(MODULE_NAME, it) }
|
arguments.moduleName?.let{ put(MODULE_NAME, it) }
|
||||||
arguments.shortModuleName?.let { put(SHORT_MODULE_NAME, it) }
|
|
||||||
arguments.target?.let{ put(TARGET, it) }
|
arguments.target?.let{ put(TARGET, it) }
|
||||||
|
|
||||||
put(INCLUDED_BINARY_FILES,
|
put(INCLUDED_BINARY_FILES,
|
||||||
@@ -229,6 +228,10 @@ class K2Native : CLICompiler<K2NativeCompilerArguments>() {
|
|||||||
libraryToAddToCache?.let { put(LIBRARY_TO_ADD_TO_CACHE, it) }
|
libraryToAddToCache?.let { put(LIBRARY_TO_ADD_TO_CACHE, it) }
|
||||||
put(CACHE_DIRECTORIES, cacheDirectories)
|
put(CACHE_DIRECTORIES, cacheDirectories)
|
||||||
put(CACHED_LIBRARIES, parseCachedLibraries(arguments, configuration))
|
put(CACHED_LIBRARIES, parseCachedLibraries(arguments, configuration))
|
||||||
|
|
||||||
|
parseShortModuleName(arguments, configuration, outputKind)?.let {
|
||||||
|
put(SHORT_MODULE_NAME, it)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -374,5 +377,25 @@ private fun parseLibraryToAddToCache(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: Support short names for current module in ObjC export and lift this limitation.
|
||||||
|
private fun parseShortModuleName(
|
||||||
|
arguments: K2NativeCompilerArguments,
|
||||||
|
configuration: CompilerConfiguration,
|
||||||
|
outputKind: CompilerOutputKind
|
||||||
|
): String? {
|
||||||
|
val input = arguments.shortModuleName
|
||||||
|
|
||||||
|
return if (input != null && outputKind != CompilerOutputKind.LIBRARY) {
|
||||||
|
configuration.report(
|
||||||
|
STRONG_WARNING,
|
||||||
|
"$SHORT_MODULE_NAME_ARG is only supported when producing a Kotlin library, " +
|
||||||
|
"but the compiler is producing ${outputKind.name.toLowerCase()}"
|
||||||
|
)
|
||||||
|
null
|
||||||
|
} else {
|
||||||
|
input
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fun main(args: Array<String>) = K2Native.main(args)
|
fun main(args: Array<String>) = K2Native.main(args)
|
||||||
fun mainNoExit(args: Array<String>) = K2Native.mainNoExit(args)
|
fun mainNoExit(args: Array<String>) = K2Native.mainNoExit(args)
|
||||||
|
|||||||
@@ -200,7 +200,7 @@ class K2NativeCompilerArguments : CommonCompilerArguments() {
|
|||||||
var includes: Array<String>? = null
|
var includes: Array<String>? = null
|
||||||
|
|
||||||
@Argument(
|
@Argument(
|
||||||
value = "-Xshort-module-name",
|
value = SHORT_MODULE_NAME_ARG,
|
||||||
valueDescription = "<name>",
|
valueDescription = "<name>",
|
||||||
description = "A short name used to denote this library in the IDE and in a generated Objective-C header"
|
description = "A short name used to denote this library in the IDE and in a generated Objective-C header"
|
||||||
)
|
)
|
||||||
@@ -282,3 +282,4 @@ const val INCLUDE_ARG = "-Xinclude"
|
|||||||
const val CACHED_LIBRARY = "-Xcached-library"
|
const val CACHED_LIBRARY = "-Xcached-library"
|
||||||
const val MAKE_CACHE = "-Xmake-cache"
|
const val MAKE_CACHE = "-Xmake-cache"
|
||||||
const val ADD_CACHE = "-Xadd-cache"
|
const val ADD_CACHE = "-Xadd-cache"
|
||||||
|
const val SHORT_MODULE_NAME_ARG = "-Xshort-module-name"
|
||||||
@@ -4,6 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
package org.jetbrains.kotlin.cli.utilities
|
package org.jetbrains.kotlin.cli.utilities
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.cli.bc.SHORT_MODULE_NAME_ARG
|
||||||
import org.jetbrains.kotlin.konan.file.File
|
import org.jetbrains.kotlin.konan.file.File
|
||||||
import org.jetbrains.kotlin.konan.target.PlatformManager
|
import org.jetbrains.kotlin.konan.target.PlatformManager
|
||||||
import org.jetbrains.kotlin.native.interop.gen.jvm.InternalInteropOptions
|
import org.jetbrains.kotlin.native.interop.gen.jvm.InternalInteropOptions
|
||||||
@@ -69,7 +70,7 @@ fun invokeInterop(flavor: String, args: Array<String>): Array<String>? {
|
|||||||
(if (purgeUserLibs) arrayOf("-$PURGE_USER_LIBS") else emptyArray()) +
|
(if (purgeUserLibs) arrayOf("-$PURGE_USER_LIBS") else emptyArray()) +
|
||||||
(if (nopack) arrayOf("-$NOPACK") else emptyArray()) +
|
(if (nopack) arrayOf("-$NOPACK") else emptyArray()) +
|
||||||
moduleName?.let { arrayOf("-module-name", it) }.orEmpty() +
|
moduleName?.let { arrayOf("-module-name", it) }.orEmpty() +
|
||||||
shortModuleName?.let { arrayOf("-Xshort-module-name=$it") }.orEmpty() +
|
shortModuleName?.let { arrayOf("$SHORT_MODULE_NAME_ARG=$it") }.orEmpty() +
|
||||||
arguments.kotlincOption
|
arguments.kotlincOption
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user