Pill: Better support for compiler arguments in generated facets
This commit is contained in:
committed by
TeamCityServer
parent
6cd25984ca
commit
f1fa17f896
@@ -269,17 +269,16 @@ class ModelParser(private val variant: Variant, private val modulePrefix: String
|
|||||||
method.invoke(kotlinCompileTask) as List<String>
|
method.invoke(kotlinCompileTask) as List<String>
|
||||||
}
|
}
|
||||||
|
|
||||||
fun parseBoolean(name: String) = compileArguments.contains("-$name")
|
val extraArguments = getExtraArguments(compileArguments)
|
||||||
fun parseString(name: String) = compileArguments.dropWhile { it != "-$name" }.drop(1).firstOrNull()
|
|
||||||
|
|
||||||
val extraArguments = compileArguments.filter { it.startsWith("-X") && !it.startsWith("-Xplugin=") }
|
|
||||||
|
|
||||||
val pluginClasspath = mutableListOf<String>()
|
val pluginClasspath = mutableListOf<String>()
|
||||||
|
|
||||||
if (project.plugins.hasPlugin("org.jetbrains.kotlin.plugin.serialization")) {
|
if (project.plugins.hasPlugin("org.jetbrains.kotlin.plugin.serialization")) {
|
||||||
pluginClasspath += "\$KOTLIN_BUNDLED\$/lib/kotlinx-serialization-compiler-plugin.jar"
|
pluginClasspath += "\$KOTLIN_BUNDLED\$/lib/kotlinx-serialization-compiler-plugin.jar"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun parseBoolean(name: String) = compileArguments.contains("-$name")
|
||||||
|
fun parseString(name: String) = compileArguments.dropWhile { it != "-$name" }.drop(1).firstOrNull()
|
||||||
|
|
||||||
return PSourceRootKotlinOptions(
|
return PSourceRootKotlinOptions(
|
||||||
parseBoolean("no-stdlib"),
|
parseBoolean("no-stdlib"),
|
||||||
parseBoolean("no-reflect"),
|
parseBoolean("no-reflect"),
|
||||||
@@ -316,6 +315,34 @@ class ModelParser(private val variant: Variant, private val modulePrefix: String
|
|||||||
return@map PDependency.ModuleLibrary(library)
|
return@map PDependency.ModuleLibrary(library)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private companion object {
|
||||||
|
private val SKIPPED_STANDALONE_ARGUMENTS =
|
||||||
|
listOf("-no-stdlib", "-no-reflect", "-Xfriend-paths=", "-Xbuild-file=", "-Xplugin=")
|
||||||
|
|
||||||
|
private val SKIPPED_ARGUMENTS_WITH_VALUE =
|
||||||
|
listOf("-classpath", "-d", "-module-name", "-api-version", "-language-version", "-jvm-target", "-P")
|
||||||
|
|
||||||
|
private fun getExtraArguments(args: List<String>): List<String> {
|
||||||
|
val result = mutableListOf<String>()
|
||||||
|
var index = 0
|
||||||
|
while (index < args.size) {
|
||||||
|
val arg = args[index]
|
||||||
|
|
||||||
|
if (SKIPPED_STANDALONE_ARGUMENTS.any { arg.startsWith(it) }) {
|
||||||
|
index += 1
|
||||||
|
continue
|
||||||
|
} else if (SKIPPED_ARGUMENTS_WITH_VALUE.any { arg.startsWith(it) }) {
|
||||||
|
index += 2 // Skip also the value
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
result += arg
|
||||||
|
index += 1
|
||||||
|
}
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private val SourceSet.isTestSourceSet: Boolean
|
private val SourceSet.isTestSourceSet: Boolean
|
||||||
|
|||||||
Reference in New Issue
Block a user