Remove -shims. Warning for -linkerOpts for native flavor (#2730)
This commit is contained in:
+1
-1
@@ -445,7 +445,7 @@ components.main {
|
||||
includeDirs "include/directory" "another/directory"
|
||||
|
||||
// Pass additional command line options to the cinterop tool.
|
||||
extraOpts '-shims', 'true'
|
||||
extraOpts '-verbose'
|
||||
|
||||
// Additional configuration for Linux.
|
||||
target('linux') {
|
||||
|
||||
-1
@@ -63,7 +63,6 @@ fun getCInteropArguments(): List<OptionDescriptor> {
|
||||
"additional compiler options", isMultiple = true, delimiter = " "),
|
||||
OptionDescriptor(ArgType.String(), "linkerOpts", "lopt",
|
||||
"additional linker options", isMultiple = true, delimiter = " "),
|
||||
OptionDescriptor(ArgType.Boolean(), "shims", description = "wrap bindings by a tracing layer", defaultValue = "false"),
|
||||
OptionDescriptor(ArgType.String(), "linker", description = "use specified linker")
|
||||
)
|
||||
return (options + getCommonInteropArguments())
|
||||
|
||||
-1
@@ -30,7 +30,6 @@ class StubGenerator(
|
||||
val nativeIndex: NativeIndex,
|
||||
val configuration: InteropConfiguration,
|
||||
val libName: String,
|
||||
val dumpShims: Boolean,
|
||||
val verbose: Boolean = false,
|
||||
val platform: KotlinPlatform = KotlinPlatform.JVM,
|
||||
val imports: Imports
|
||||
|
||||
+5
-2
@@ -177,8 +177,11 @@ private fun processCLib(args: Array<String>, additionalArgs: Map<String, Any> =
|
||||
|
||||
val def = DefFile(defFile, tool.substitutions)
|
||||
|
||||
if (flavorName == "native" && argParser.getOrigin("linkerOpts") == ArgParser.ValueOrigin.SET_BY_USER) {
|
||||
warn("-linkerOpts/-lopt option is not supported by cinterop. Please add linker options to .def file or binary compilation instead.")
|
||||
}
|
||||
|
||||
val additionalLinkerOpts = argParser.getValuesAsArray("linkerOpts")
|
||||
val generateShims = argParser.get<Boolean>("shims")!!
|
||||
val verbose = argParser.get<Boolean>("verbose")!!
|
||||
|
||||
val language = selectNativeLanguage(def.config)
|
||||
@@ -228,7 +231,7 @@ private fun processCLib(args: Array<String>, additionalArgs: Map<String, Any> =
|
||||
|
||||
val nativeIndex = buildNativeIndex(library, verbose)
|
||||
|
||||
val gen = StubGenerator(nativeIndex, configuration, libName, generateShims, verbose, flavor, imports)
|
||||
val gen = StubGenerator(nativeIndex, configuration, libName, verbose, flavor, imports)
|
||||
|
||||
outKtFile.parentFile.mkdirs()
|
||||
|
||||
|
||||
@@ -254,10 +254,6 @@ class NamedNativeInteropConfig implements Named {
|
||||
args '-header', it
|
||||
}
|
||||
|
||||
if (project.hasProperty('shims') && project.ext.shims) {
|
||||
args '-shims'
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -128,6 +128,9 @@ class ArgParser(optionsList: List<OptionDescriptor>, argsList: List<ArgDescripto
|
||||
).toList()
|
||||
private val arguments = argsList
|
||||
private lateinit var parsedValues: MutableMap<String, ParsedArg?>
|
||||
private lateinit var valuesOrigin: MutableMap<String, ValueOrigin?>
|
||||
|
||||
enum class ValueOrigin { SET_BY_USER, SET_DEFAULT_VALUE, UNSET }
|
||||
|
||||
inner class ParsedArg(val descriptor: Descriptor, val values: List<String>) {
|
||||
init {
|
||||
@@ -166,6 +169,9 @@ class ArgParser(optionsList: List<OptionDescriptor>, argsList: List<ArgDescripto
|
||||
error("$message\n${makeUsage()}")
|
||||
}
|
||||
|
||||
// Get origin of option value.
|
||||
fun getOrigin(name: String) = valuesOrigin[name] ?: printError("No option/argument $name in list of avaliable options")
|
||||
|
||||
private fun saveAsArg(argDescriptors: Map<String, ArgDescriptor>, arg: String, processedValues: Map<String, MutableList<String>>): Boolean {
|
||||
// Find uninitialized arguments.
|
||||
val nullArgs = argDescriptors.keys.filter { processedValues.getValue(it).isEmpty() }
|
||||
@@ -203,6 +209,7 @@ class ArgParser(optionsList: List<OptionDescriptor>, argsList: List<ArgDescripto
|
||||
val descriptorsKeys = optDescriptors.keys.union(argDescriptors.keys).toList()
|
||||
val processedValues = descriptorsKeys.map { it to mutableListOf<String>() }.toMap().toMutableMap()
|
||||
parsedValues = descriptorsKeys.map { it to null }.toMap().toMutableMap()
|
||||
valuesOrigin = descriptorsKeys.map { it to ValueOrigin.UNSET }.toMap().toMutableMap()
|
||||
while (index < args.size) {
|
||||
val arg = args[index]
|
||||
if (arg.startsWith('-')) {
|
||||
@@ -246,6 +253,7 @@ class ArgParser(optionsList: List<OptionDescriptor>, argsList: List<ArgDescripto
|
||||
if (value.isEmpty()) {
|
||||
descriptor.defaultValue?. let {
|
||||
parsedValues[key] = ParsedArg(descriptor, listOf(descriptor.defaultValue))
|
||||
valuesOrigin[key] = ValueOrigin.SET_DEFAULT_VALUE
|
||||
} ?: run {
|
||||
if (descriptor.isRequired) {
|
||||
printError("Please, provide value for ${descriptor.textDescription}. It should be always set")
|
||||
@@ -255,6 +263,7 @@ class ArgParser(optionsList: List<OptionDescriptor>, argsList: List<ArgDescripto
|
||||
}
|
||||
} else {
|
||||
parsedValues[key] = ParsedArg(descriptor, value)
|
||||
valuesOrigin[key] = ValueOrigin.SET_BY_USER
|
||||
}
|
||||
}
|
||||
return true
|
||||
|
||||
+1
-1
@@ -208,7 +208,7 @@ class IncrementalSpecification extends BaseKonanSpecification {
|
||||
"linkerOpts" | "'--help'"
|
||||
"includeDirs" | "'src'"
|
||||
"includeDirs.allHeaders" | "'src'"
|
||||
"extraOpts" | "'-shims'"
|
||||
"extraOpts" | "'-verbose'"
|
||||
"noDefaultLibs" | "true"
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user