Support additional compiler arguments
This commit is contained in:
+13
@@ -19,6 +19,7 @@ package org.jetbrains.kotlin.gradle.internal
|
||||
import org.gradle.api.plugins.ExtraPropertiesExtension
|
||||
import org.gradle.api.tasks.compile.AbstractCompile
|
||||
import org.gradle.api.tasks.compile.JavaCompile
|
||||
import org.jetbrains.kotlin.gradle.plugin.KaptExtension
|
||||
import org.jetbrains.kotlin.gradle.plugin.kotlinDebug
|
||||
import java.io.File
|
||||
import java.io.IOException
|
||||
@@ -67,6 +68,8 @@ public class AnnotationProcessingManager(
|
||||
javaTask.appendClasspath(stubOutputDir)
|
||||
|
||||
addGeneratedSourcesOutputToCompilerArgs(javaTask, aptOutputDir)
|
||||
|
||||
appendAdditionalComplerArgs()
|
||||
}
|
||||
|
||||
fun afterJavaCompile() {
|
||||
@@ -93,6 +96,16 @@ public class AnnotationProcessingManager(
|
||||
javaTask.source(javaAptSourceDir)
|
||||
}
|
||||
|
||||
private fun appendAdditionalComplerArgs() {
|
||||
val kaptExtension = project.getExtensions().getByType(javaClass<KaptExtension>())
|
||||
val args = kaptExtension.getAdditionalCompilerArgs()
|
||||
if (args.isEmpty()) return
|
||||
|
||||
javaTask.modifyCompilerArguments { list ->
|
||||
list.addAll(args)
|
||||
}
|
||||
}
|
||||
|
||||
private fun generateAnnotationProcessorStubs(javaTask: JavaCompile, processorFqNames: Set<String>, outputDir: File) {
|
||||
val aptAnnotationFile = invokeCoreKaptMethod("generateKotlinAptAnnotation", outputDir) as File
|
||||
project.getLogger().kotlinDebug("kapt: Stub annotation generated: $aptAnnotationFile")
|
||||
|
||||
+11
@@ -20,4 +20,15 @@ public open class KaptExtension {
|
||||
|
||||
public open var generateStubs: Boolean = false
|
||||
|
||||
private val additionalCompilerArgs = arrayListOf<String>()
|
||||
|
||||
public open fun arg(name: String, vararg values: String) {
|
||||
val valuesString = if (values.isNotEmpty()) values.joinToString(" ", prefix = "=") else ""
|
||||
additionalCompilerArgs.add("-A$name$valuesString")
|
||||
}
|
||||
|
||||
public open fun getAdditionalCompilerArgs(): List<String> {
|
||||
return additionalCompilerArgs.toList()
|
||||
}
|
||||
|
||||
}
|
||||
+1
-4
@@ -585,7 +585,7 @@ private fun Project.initKapt(
|
||||
subpluginEnvironment: SubpluginEnvironment,
|
||||
taskFactory: (suffix: String) -> AbstractCompile
|
||||
) {
|
||||
val kaptExtension = getExtensions().kapt
|
||||
val kaptExtension = getExtensions().getByType(javaClass<KaptExtension>())
|
||||
val kotlinAfterJavaTask: AbstractCompile?
|
||||
|
||||
if (kaptExtension.generateStubs) {
|
||||
@@ -643,9 +643,6 @@ private fun Project.createKotlinAfterJavaTask(
|
||||
return kotlinTaskAfterJava
|
||||
}
|
||||
|
||||
private val ExtensionContainer.kapt: KaptExtension
|
||||
get() = getByType(javaClass<KaptExtension>())
|
||||
|
||||
//copied from BasePlugin.getLocalVersion
|
||||
private fun loadAndroidPluginVersion(): String? {
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user