Gradle: fix kotlinOptions for kotlin-android plugin
This commit is contained in:
+6
-3
@@ -273,6 +273,8 @@ open class KotlinAndroidPlugin [Inject] (val scriptHandler: ScriptHandler, val t
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
(ext as ExtensionAware).getExtensions().add("kotlinOptions", tasksProvider.kotlinJVMOptionsClass)
|
||||||
|
|
||||||
project afterEvaluate { project ->
|
project afterEvaluate { project ->
|
||||||
if (project != null) {
|
if (project != null) {
|
||||||
val testVariants = ext.getTestVariants()!!
|
val testVariants = ext.getTestVariants()!!
|
||||||
@@ -294,7 +296,7 @@ open class KotlinAndroidPlugin [Inject] (val scriptHandler: ScriptHandler, val t
|
|||||||
|
|
||||||
private fun processVariants(variants: DefaultDomainObjectSet<out BaseVariant>, project: Project, androidExt: BaseExtension): Unit {
|
private fun processVariants(variants: DefaultDomainObjectSet<out BaseVariant>, project: Project, androidExt: BaseExtension): Unit {
|
||||||
val logger = project.getLogger()
|
val logger = project.getLogger()
|
||||||
val kotlinOptions = getExtension<Any>(androidExt, "kotlinOptions")
|
val kotlinOptions = getExtension<Any?>(androidExt, "kotlinOptions")
|
||||||
val sourceSets = androidExt.getSourceSets()
|
val sourceSets = androidExt.getSourceSets()
|
||||||
//TODO: change to BuilderConstants.MAIN - it was relocated in 0.11 plugin
|
//TODO: change to BuilderConstants.MAIN - it was relocated in 0.11 plugin
|
||||||
val mainSourceSet = sourceSets.getByName("main")
|
val mainSourceSet = sourceSets.getByName("main")
|
||||||
@@ -316,8 +318,9 @@ open class KotlinAndroidPlugin [Inject] (val scriptHandler: ScriptHandler, val t
|
|||||||
|
|
||||||
val kotlinTaskName = "compile${variantName.capitalize()}Kotlin"
|
val kotlinTaskName = "compile${variantName.capitalize()}Kotlin"
|
||||||
val kotlinTask = tasksProvider.createKotlinJVMTask(project, kotlinTaskName)
|
val kotlinTask = tasksProvider.createKotlinJVMTask(project, kotlinTaskName)
|
||||||
kotlinTask.setProperty("kotlinOptions", kotlinOptions)
|
if (kotlinOptions != null) {
|
||||||
|
kotlinTask.setProperty("kotlinOptions", kotlinOptions)
|
||||||
|
}
|
||||||
|
|
||||||
// store kotlin classes in separate directory. They will serve as class-path to java compiler
|
// store kotlin classes in separate directory. They will serve as class-path to java compiler
|
||||||
val kotlinOutputDir = File(project.getBuildDir(), "tmp/kotlin-classes/${variantName}")
|
val kotlinOutputDir = File(project.getBuildDir(), "tmp/kotlin-classes/${variantName}")
|
||||||
|
|||||||
+3
@@ -22,6 +22,9 @@ public open class KotlinTasksProvider(val tasksLoader: ClassLoader) {
|
|||||||
val kDocTaskClass: Class<SourceTask> =
|
val kDocTaskClass: Class<SourceTask> =
|
||||||
tasksLoader.loadClass("org.jetbrains.kotlin.gradle.tasks.KDoc") as Class<SourceTask>
|
tasksLoader.loadClass("org.jetbrains.kotlin.gradle.tasks.KDoc") as Class<SourceTask>
|
||||||
|
|
||||||
|
val kotlinJVMOptionsClass: Class<Any> =
|
||||||
|
tasksLoader.loadClass("org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments") as Class<Any>
|
||||||
|
|
||||||
|
|
||||||
public fun createKotlinJVMTask(project: Project, name: String): AbstractCompile {
|
public fun createKotlinJVMTask(project: Project, name: String): AbstractCompile {
|
||||||
return project.getTasks().create(name, kotlinJVMCompileTaskClass)
|
return project.getTasks().create(name, kotlinJVMCompileTaskClass)
|
||||||
|
|||||||
Reference in New Issue
Block a user