Pick up script language level from used stdlib in a gradle's classpath

^KT-41283 Fixed
This commit is contained in:
Vladimir Dolzhenko
2020-08-26 14:09:58 +00:00
parent 949c67078d
commit 54d3c5fb0a
7 changed files with 87 additions and 35 deletions
@@ -264,7 +264,8 @@ fun loadDefinitionsFromTemplates(
* Script template dependencies naturally become (part of) dependencies of the script which is not always desired for resolver dependencies.
* i.e. gradle resolver may depend on some jars that 'built.gradle.kts' files should not depend on.
*/
additionalResolverClasspath: List<File> = emptyList()
additionalResolverClasspath: List<File> = emptyList(),
defaultCompilerOptions: Iterable<String> = emptyList()
): List<ScriptDefinition> {
val classpath = templateClasspath + additionalResolverClasspath
scriptingInfoLog("Loading script definitions $templateClassNames using cp: ${classpath.joinToString(File.pathSeparator)}")
@@ -281,10 +282,10 @@ fun loadDefinitionsFromTemplates(
}
when {
template.annotations.firstIsInstanceOrNull<kotlin.script.templates.ScriptTemplateDefinition>() != null -> {
ScriptDefinition.FromLegacyTemplate(hostConfiguration, template, templateClasspath)
ScriptDefinition.FromLegacyTemplate(hostConfiguration, template, templateClasspath, defaultCompilerOptions)
}
template.annotations.firstIsInstanceOrNull<kotlin.script.experimental.annotations.KotlinScript>() != null -> {
ScriptDefinition.FromTemplate(hostConfiguration, template, ScriptDefinition::class)
ScriptDefinition.FromTemplate(hostConfiguration, template, ScriptDefinition::class, defaultCompilerOptions)
}
else -> {
scriptingWarnLog("Cannot find a valid script definition annotation on the class $template")