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.plugins.ExtraPropertiesExtension
|
||||||
import org.gradle.api.tasks.compile.AbstractCompile
|
import org.gradle.api.tasks.compile.AbstractCompile
|
||||||
import org.gradle.api.tasks.compile.JavaCompile
|
import org.gradle.api.tasks.compile.JavaCompile
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.KaptExtension
|
||||||
import org.jetbrains.kotlin.gradle.plugin.kotlinDebug
|
import org.jetbrains.kotlin.gradle.plugin.kotlinDebug
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
@@ -67,6 +68,8 @@ public class AnnotationProcessingManager(
|
|||||||
javaTask.appendClasspath(stubOutputDir)
|
javaTask.appendClasspath(stubOutputDir)
|
||||||
|
|
||||||
addGeneratedSourcesOutputToCompilerArgs(javaTask, aptOutputDir)
|
addGeneratedSourcesOutputToCompilerArgs(javaTask, aptOutputDir)
|
||||||
|
|
||||||
|
appendAdditionalComplerArgs()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun afterJavaCompile() {
|
fun afterJavaCompile() {
|
||||||
@@ -93,6 +96,16 @@ public class AnnotationProcessingManager(
|
|||||||
javaTask.source(javaAptSourceDir)
|
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) {
|
private fun generateAnnotationProcessorStubs(javaTask: JavaCompile, processorFqNames: Set<String>, outputDir: File) {
|
||||||
val aptAnnotationFile = invokeCoreKaptMethod("generateKotlinAptAnnotation", outputDir) as File
|
val aptAnnotationFile = invokeCoreKaptMethod("generateKotlinAptAnnotation", outputDir) as File
|
||||||
project.getLogger().kotlinDebug("kapt: Stub annotation generated: $aptAnnotationFile")
|
project.getLogger().kotlinDebug("kapt: Stub annotation generated: $aptAnnotationFile")
|
||||||
|
|||||||
+11
@@ -20,4 +20,15 @@ public open class KaptExtension {
|
|||||||
|
|
||||||
public open var generateStubs: Boolean = false
|
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,
|
subpluginEnvironment: SubpluginEnvironment,
|
||||||
taskFactory: (suffix: String) -> AbstractCompile
|
taskFactory: (suffix: String) -> AbstractCompile
|
||||||
) {
|
) {
|
||||||
val kaptExtension = getExtensions().kapt
|
val kaptExtension = getExtensions().getByType(javaClass<KaptExtension>())
|
||||||
val kotlinAfterJavaTask: AbstractCompile?
|
val kotlinAfterJavaTask: AbstractCompile?
|
||||||
|
|
||||||
if (kaptExtension.generateStubs) {
|
if (kaptExtension.generateStubs) {
|
||||||
@@ -643,9 +643,6 @@ private fun Project.createKotlinAfterJavaTask(
|
|||||||
return kotlinTaskAfterJava
|
return kotlinTaskAfterJava
|
||||||
}
|
}
|
||||||
|
|
||||||
private val ExtensionContainer.kapt: KaptExtension
|
|
||||||
get() = getByType(javaClass<KaptExtension>())
|
|
||||||
|
|
||||||
//copied from BasePlugin.getLocalVersion
|
//copied from BasePlugin.getLocalVersion
|
||||||
private fun loadAndroidPluginVersion(): String? {
|
private fun loadAndroidPluginVersion(): String? {
|
||||||
try {
|
try {
|
||||||
|
|||||||
Reference in New Issue
Block a user