Refactoring in AnnotationProcessingManager.kt.
This commit is contained in:
+9
-6
@@ -42,7 +42,7 @@ import java.util.zip.ZipFile
|
|||||||
|
|
||||||
internal fun Project.initKapt(
|
internal fun Project.initKapt(
|
||||||
kotlinTask: KotlinCompile,
|
kotlinTask: KotlinCompile,
|
||||||
javaTask: AbstractCompile,
|
javaTask: JavaCompile,
|
||||||
kaptManager: AnnotationProcessingManager,
|
kaptManager: AnnotationProcessingManager,
|
||||||
variantName: String,
|
variantName: String,
|
||||||
kotlinOptions: KotlinJvmOptionsImpl?,
|
kotlinOptions: KotlinJvmOptionsImpl?,
|
||||||
@@ -91,16 +91,13 @@ internal fun Project.initKapt(
|
|||||||
kaptManager.generateJavaHackFile()
|
kaptManager.generateJavaHackFile()
|
||||||
}
|
}
|
||||||
|
|
||||||
var originalJavaCompilerArgs: List<String>? = null
|
|
||||||
javaTask.doFirst {
|
javaTask.doFirst {
|
||||||
originalJavaCompilerArgs = (javaTask as JavaCompile).options.compilerArgs
|
|
||||||
kaptManager.setupKapt()
|
kaptManager.setupKapt()
|
||||||
kaptManager.generateJavaHackFile()
|
kaptManager.generateJavaHackFile()
|
||||||
kotlinAfterJavaTask?.source(kaptManager.generatedKotlinSourceDir)
|
kotlinAfterJavaTask?.source(kaptManager.generatedKotlinSourceDir)
|
||||||
}
|
}
|
||||||
|
|
||||||
javaTask.doLast {
|
javaTask.doLast {
|
||||||
(javaTask as JavaCompile).options.compilerArgs = originalJavaCompilerArgs
|
|
||||||
kaptManager.afterJavaCompile()
|
kaptManager.afterJavaCompile()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -138,6 +135,8 @@ class AnnotationProcessingManager(
|
|||||||
val wrappersDirectory = File(aptWorkingDir, "wrappers")
|
val wrappersDirectory = File(aptWorkingDir, "wrappers")
|
||||||
val hackAnnotationDir = File(aptWorkingDir, "java_src")
|
val hackAnnotationDir = File(aptWorkingDir, "java_src")
|
||||||
|
|
||||||
|
private var originalJavaCompilerArgs: List<String>? = null
|
||||||
|
|
||||||
private companion object {
|
private companion object {
|
||||||
val JAVA_FQNAME_PATTERN = "^([\\p{L}_$][\\p{L}\\p{N}_$]*\\.)*[\\p{L}_$][\\p{L}\\p{N}_$]*$".toRegex()
|
val JAVA_FQNAME_PATTERN = "^([\\p{L}_$][\\p{L}\\p{N}_$]*\\.)*[\\p{L}_$][\\p{L}\\p{N}_$]*$".toRegex()
|
||||||
val GEN_ANNOTATION = "__gen/annotation"
|
val GEN_ANNOTATION = "__gen/annotation"
|
||||||
@@ -157,7 +156,11 @@ class AnnotationProcessingManager(
|
|||||||
return kotlinGeneratedDir
|
return kotlinGeneratedDir
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val kaptProcessorPath get() = javaTask.classpath + setOf(wrappersDirectory) + aptFiles
|
||||||
|
|
||||||
fun setupKapt() {
|
fun setupKapt() {
|
||||||
|
originalJavaCompilerArgs = javaTask.options.compilerArgs
|
||||||
|
|
||||||
if (aptFiles.isEmpty()) return
|
if (aptFiles.isEmpty()) return
|
||||||
|
|
||||||
if (project.plugins.findPlugin(ANDROID_APT_PLUGIN_ID) != null) {
|
if (project.plugins.findPlugin(ANDROID_APT_PLUGIN_ID) != null) {
|
||||||
@@ -168,8 +171,7 @@ class AnnotationProcessingManager(
|
|||||||
|
|
||||||
generateAnnotationProcessorStubs(javaTask, annotationProcessorFqNames, wrappersDirectory)
|
generateAnnotationProcessorStubs(javaTask, annotationProcessorFqNames, wrappersDirectory)
|
||||||
|
|
||||||
val processorPath = setOf(wrappersDirectory) + aptFiles
|
setProcessorPath(javaTask, (kaptProcessorPath))
|
||||||
setProcessorPath(javaTask, (processorPath + javaTask.classpath))
|
|
||||||
|
|
||||||
if (aptOutputDir.exists()) {
|
if (aptOutputDir.exists()) {
|
||||||
aptOutputDir.deleteRecursively()
|
aptOutputDir.deleteRecursively()
|
||||||
@@ -187,6 +189,7 @@ class AnnotationProcessingManager(
|
|||||||
} else {
|
} else {
|
||||||
project.logger.kotlinDebug("kapt: Java file stub was not found at $generatedFile")
|
project.logger.kotlinDebug("kapt: Java file stub was not found at $generatedFile")
|
||||||
}
|
}
|
||||||
|
javaTask.options.compilerArgs = originalJavaCompilerArgs
|
||||||
}
|
}
|
||||||
|
|
||||||
fun generateJavaHackFile() {
|
fun generateJavaHackFile() {
|
||||||
|
|||||||
Reference in New Issue
Block a user