Gradle: Subplugin loading process is unrelated to kapt
This commit is contained in:
+11
-9
@@ -161,13 +161,16 @@ class Kotlin2JvmSourceSetProcessor(
|
|||||||
kotlinDirSet?.srcDir(dir)
|
kotlinDirSet?.srcDir(dir)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val subpluginEnvironment = loadSubplugins(project)
|
||||||
|
subpluginEnvironment.addSubpluginArguments(project, kotlinTask)
|
||||||
|
|
||||||
if (aptConfiguration.getDependencies().size() > 1 && javaTask is JavaCompile) {
|
if (aptConfiguration.getDependencies().size() > 1 && javaTask is JavaCompile) {
|
||||||
val (aptOutputDir, aptWorkingDir) = project.getAptDirsForSourceSet(kotlinTask, sourceSetName)
|
val (aptOutputDir, aptWorkingDir) = project.getAptDirsForSourceSet(kotlinTask, sourceSetName)
|
||||||
|
|
||||||
val kaptManager = AnnotationProcessingManager(kotlinTask, javaTask, sourceSetName,
|
val kaptManager = AnnotationProcessingManager(kotlinTask, javaTask, sourceSetName,
|
||||||
aptConfiguration.resolve(), aptOutputDir, aptWorkingDir, tasksProvider.tasksLoader)
|
aptConfiguration.resolve(), aptOutputDir, aptWorkingDir, tasksProvider.tasksLoader)
|
||||||
|
|
||||||
project.initKapt(kotlinTask, javaTask, kaptManager, sourceSetName, kotlinDestinationDir) {
|
project.initKapt(kotlinTask, javaTask, kaptManager, sourceSetName, kotlinDestinationDir, subpluginEnvironment) {
|
||||||
createKotlinCompileTask(it)
|
createKotlinCompileTask(it)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -360,7 +363,7 @@ open class KotlinAndroidPlugin [Inject] (val scriptHandler: ScriptHandler, val t
|
|||||||
val logger = project.getLogger()
|
val logger = project.getLogger()
|
||||||
val kotlinOptions = getExtension<Any?>(androidExt, "kotlinOptions")
|
val kotlinOptions = getExtension<Any?>(androidExt, "kotlinOptions")
|
||||||
|
|
||||||
val subpluginEnvironment = loadSubplugins(project, logger)
|
val subpluginEnvironment = loadSubplugins(project)
|
||||||
|
|
||||||
for (variantData in variantDataList) {
|
for (variantData in variantDataList) {
|
||||||
val variantDataName = variantData.getName()
|
val variantDataName = variantData.getName()
|
||||||
@@ -424,6 +427,8 @@ open class KotlinAndroidPlugin [Inject] (val scriptHandler: ScriptHandler, val t
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
subpluginEnvironment.addSubpluginArguments(project, kotlinTask)
|
||||||
|
|
||||||
kotlinTask doFirst {
|
kotlinTask doFirst {
|
||||||
val androidRT = project.files(AndroidGradleWrapper.getRuntimeJars(androidPlugin, androidExt))
|
val androidRT = project.files(AndroidGradleWrapper.getRuntimeJars(androidPlugin, androidExt))
|
||||||
val fullClasspath = (javaTask.getClasspath() + androidRT) - project.files(kotlinTask.property("kotlinDestinationDir"))
|
val fullClasspath = (javaTask.getClasspath() + androidRT) - project.files(kotlinTask.property("kotlinDestinationDir"))
|
||||||
@@ -466,7 +471,7 @@ open class KotlinAndroidPlugin [Inject] (val scriptHandler: ScriptHandler, val t
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun loadSubplugins(project: Project, logger: Logger): SubpluginEnvironment {
|
private fun loadSubplugins(project: Project): SubpluginEnvironment {
|
||||||
try {
|
try {
|
||||||
val subplugins = ServiceLoader.load(
|
val subplugins = ServiceLoader.load(
|
||||||
javaClass<KotlinGradleSubplugin>(), project.getBuildscript().getClassLoader()).toList()
|
javaClass<KotlinGradleSubplugin>(), project.getBuildscript().getClassLoader()).toList()
|
||||||
@@ -577,15 +582,14 @@ private fun Project.initKapt(
|
|||||||
kaptManager: AnnotationProcessingManager,
|
kaptManager: AnnotationProcessingManager,
|
||||||
variantName: String,
|
variantName: String,
|
||||||
kotlinOutputDir: File,
|
kotlinOutputDir: File,
|
||||||
subpluginEnvironment: SubpluginEnvironment? = null,
|
subpluginEnvironment: SubpluginEnvironment,
|
||||||
taskFactory: (suffix: String) -> AbstractCompile
|
taskFactory: (suffix: String) -> AbstractCompile
|
||||||
) {
|
) {
|
||||||
val kaptExtension = getExtensions().kapt
|
val kaptExtension = getExtensions().kapt
|
||||||
val environment = subpluginEnvironment ?: loadSubplugins(this, getLogger())
|
|
||||||
val kotlinAfterJavaTask: AbstractCompile?
|
val kotlinAfterJavaTask: AbstractCompile?
|
||||||
|
|
||||||
if (kaptExtension.generateStubs) {
|
if (kaptExtension.generateStubs) {
|
||||||
kotlinAfterJavaTask = createKotlinAfterJavaTask(kotlinTask, javaTask, kotlinOutputDir, taskFactory)
|
kotlinAfterJavaTask = createKotlinAfterJavaTask(javaTask, kotlinOutputDir, taskFactory)
|
||||||
|
|
||||||
kotlinTask.getLogger().kotlinDebug("kapt: Using class file stubs")
|
kotlinTask.getLogger().kotlinDebug("kapt: Using class file stubs")
|
||||||
|
|
||||||
@@ -598,11 +602,10 @@ private fun Project.initKapt(
|
|||||||
kotlinAfterJavaTask.source(kotlinTask.getSource())
|
kotlinAfterJavaTask.source(kotlinTask.getSource())
|
||||||
}
|
}
|
||||||
|
|
||||||
environment.addSubpluginArguments(this, kotlinAfterJavaTask)
|
subpluginEnvironment.addSubpluginArguments(this, kotlinAfterJavaTask)
|
||||||
} else {
|
} else {
|
||||||
kotlinAfterJavaTask = null
|
kotlinAfterJavaTask = null
|
||||||
kotlinTask.getLogger().kotlinDebug("kapt: Class file stubs are not used")
|
kotlinTask.getLogger().kotlinDebug("kapt: Class file stubs are not used")
|
||||||
environment.addSubpluginArguments(this, kotlinTask)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
javaTask.doFirst {
|
javaTask.doFirst {
|
||||||
@@ -618,7 +621,6 @@ private fun Project.initKapt(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun Project.createKotlinAfterJavaTask(
|
private fun Project.createKotlinAfterJavaTask(
|
||||||
kotlinTask: AbstractCompile,
|
|
||||||
javaTask: AbstractCompile,
|
javaTask: AbstractCompile,
|
||||||
kotlinDestinationDir: File,
|
kotlinDestinationDir: File,
|
||||||
taskFactory: (suffix: String) -> AbstractCompile
|
taskFactory: (suffix: String) -> AbstractCompile
|
||||||
|
|||||||
Reference in New Issue
Block a user