Gradle: fix kotlinOptions for kotlin-android plugin

This commit is contained in:
Natalia Ukhorskaya
2015-01-21 11:08:09 +03:00
parent bcbfb1bd77
commit 8b5279897f
2 changed files with 9 additions and 3 deletions
@@ -273,6 +273,8 @@ open class KotlinAndroidPlugin [Inject] (val scriptHandler: ScriptHandler, val t
}
})
(ext as ExtensionAware).getExtensions().add("kotlinOptions", tasksProvider.kotlinJVMOptionsClass)
project afterEvaluate { project ->
if (project != null) {
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 {
val logger = project.getLogger()
val kotlinOptions = getExtension<Any>(androidExt, "kotlinOptions")
val kotlinOptions = getExtension<Any?>(androidExt, "kotlinOptions")
val sourceSets = androidExt.getSourceSets()
//TODO: change to BuilderConstants.MAIN - it was relocated in 0.11 plugin
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 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
val kotlinOutputDir = File(project.getBuildDir(), "tmp/kotlin-classes/${variantName}")
@@ -22,6 +22,9 @@ public open class KotlinTasksProvider(val tasksLoader: ClassLoader) {
val kDocTaskClass: 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 {
return project.getTasks().create(name, kotlinJVMCompileTaskClass)