Fix for the Databinding issue where the kapt task started to early, not
letting the Databinding pre-process the project.
This commit is contained in:
+9
@@ -4,7 +4,9 @@ import com.android.build.gradle.*
|
|||||||
import com.android.build.gradle.api.*
|
import com.android.build.gradle.api.*
|
||||||
import com.android.builder.model.SourceProvider
|
import com.android.builder.model.SourceProvider
|
||||||
import org.gradle.api.Project
|
import org.gradle.api.Project
|
||||||
|
import org.gradle.api.file.FileCollection
|
||||||
import org.gradle.api.tasks.compile.AbstractCompile
|
import org.gradle.api.tasks.compile.AbstractCompile
|
||||||
|
import org.jetbrains.kotlin.com.intellij.util.ReflectionUtil
|
||||||
import org.jetbrains.kotlin.gradle.internal.Kapt3GradleSubplugin
|
import org.jetbrains.kotlin.gradle.internal.Kapt3GradleSubplugin
|
||||||
import org.jetbrains.kotlin.gradle.internal.Kapt3KotlinGradleSubplugin
|
import org.jetbrains.kotlin.gradle.internal.Kapt3KotlinGradleSubplugin
|
||||||
import org.jetbrains.kotlin.gradle.internal.KaptTask
|
import org.jetbrains.kotlin.gradle.internal.KaptTask
|
||||||
@@ -131,9 +133,16 @@ class Android25ProjectHandler(kotlinConfigurationTools: KotlinConfigurationTools
|
|||||||
) {
|
) {
|
||||||
val kaptSourceOutput = project.fileTree(kaptTask.destinationDir).builtBy(kaptTask)
|
val kaptSourceOutput = project.fileTree(kaptTask.destinationDir).builtBy(kaptTask)
|
||||||
variantData.registerExternalAptJavaOutput(kaptSourceOutput)
|
variantData.registerExternalAptJavaOutput(kaptSourceOutput)
|
||||||
|
variantData.dataBindingDependencyArtifactsIfSupported?.let { kaptTask.dependsOn(it) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//TODO once the Android plugin reaches its 3.0.0 release, consider compiling against it (remove the reflective call)
|
||||||
|
private val BaseVariant.dataBindingDependencyArtifactsIfSupported: FileCollection?
|
||||||
|
get() = ReflectionUtil.findMethod(
|
||||||
|
this::class.java.methods.toList(),
|
||||||
|
"getDataBindingDependencyArtifacts")?.invoke(this) as? FileCollection
|
||||||
|
|
||||||
override fun wrapVariantDataForKapt(variantData: BaseVariant): KaptVariantData<BaseVariant> =
|
override fun wrapVariantDataForKapt(variantData: BaseVariant): KaptVariantData<BaseVariant> =
|
||||||
KaptVariant(variantData)
|
KaptVariant(variantData)
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user