1
0
Fork 0
mirror of https://github.com/ethauvin/kobalt.git synced 2025-04-27 08:38:13 -07:00

Fix incremental compilation.

This commit is contained in:
Cedric Beust 2016-03-30 01:44:11 -08:00
parent a2c7f527e5
commit ab76270ec2

View file

@ -139,8 +139,34 @@ open class JvmCompilerPlugin @Inject constructor(
} }
} }
@IncrementalTask(name = TASK_COMPILE_TEST, description = "Compile the tests",
runAfter = arrayOf(JvmCompilerPlugin.TASK_COMPILE))
fun taskCompileTest(project: Project): IncrementalTaskInfo {
sourceTestDirectories.addAll(context.variant.sourceDirectories(project, context, SourceSet.of(isTest = true)))
val inputChecksum = Md5.toMd5Directories(context.testSourceDirectories(project).map {
File(project.directory, it.path)
})
return IncrementalTaskInfo(
inputChecksum = inputChecksum,
outputChecksum = {
Md5.toMd5Directories(listOf(KFiles.makeOutputTestDir(project)))
},
task = { project -> doTaskCompileTest(project) }
)
}
@IncrementalTask(name = JvmCompilerPlugin.TASK_COMPILE, description = "Compile the project") @IncrementalTask(name = JvmCompilerPlugin.TASK_COMPILE, description = "Compile the project")
fun taskCompile(project: Project): IncrementalTaskInfo { fun taskCompile(project: Project): IncrementalTaskInfo {
// Generate the BuildConfig before invoking sourceDirectories() since that call
// might add the buildConfig source directori
val sourceDirectory = context.variant.maybeGenerateBuildConfig(project, context)
if (sourceDirectory != null) {
sourceDirectories.add(sourceDirectory)
}
// Set up the source files now that we have the variant
sourceDirectories.addAll(context.variant.sourceDirectories(project, context, SourceSet.of(isTest = false)))
val inputChecksum = Md5.toMd5Directories(context.sourceDirectories(project).map { val inputChecksum = Md5.toMd5Directories(context.sourceDirectories(project).map {
File(project.directory, it.path) File(project.directory, it.path)
}) })
@ -158,16 +184,6 @@ open class JvmCompilerPlugin @Inject constructor(
private fun doTaskCompileTest(project: Project) = doTaskCompile(project, isTest = true) private fun doTaskCompileTest(project: Project) = doTaskCompile(project, isTest = true)
private fun doTaskCompile(project: Project, isTest: Boolean): TaskResult { private fun doTaskCompile(project: Project, isTest: Boolean): TaskResult {
// Generate the BuildConfig before invoking sourceDirectories() since that call
// might add the buildConfig source directori
val sourceDirectory = context.variant.maybeGenerateBuildConfig(project, context)
if (sourceDirectory != null) {
sourceDirectories.add(sourceDirectory)
}
// Set up the source files now that we have the variant
sourceDirectories.addAll(context.variant.sourceDirectories(project, context, SourceSet.of(isTest)))
val results = arrayListOf<TaskResult>() val results = arrayListOf<TaskResult>()
val compilerContributors = context.pluginInfo.compilerContributors val compilerContributors = context.pluginInfo.compilerContributors
@ -328,24 +344,14 @@ open class JvmCompilerPlugin @Inject constructor(
} }
val sourceDirectories = arrayListOf<File>() val sourceDirectories = arrayListOf<File>()
val sourceTestDirectories = arrayListOf<File>()
// ISourceDirectoryContributor // ISourceDirectoryContributor
override fun sourceDirectoriesFor(project: Project, context: KobaltContext) override fun sourceDirectoriesFor(project: Project, context: KobaltContext)
= if (accept(project)) sourceDirectories.toList() else arrayListOf() = if (accept(project)) {
sourceTestDirectories.toList()
@IncrementalTask(name = TASK_COMPILE_TEST, description = "Compile the tests", } else {
runAfter = arrayOf(JvmCompilerPlugin.TASK_COMPILE)) arrayListOf()
fun taskCompileTest(project: Project): IncrementalTaskInfo {
val inputChecksum = Md5.toMd5Directories(project.sourceDirectoriesTest.map {
File(project.directory, it)
})
return IncrementalTaskInfo(
inputChecksum = inputChecksum,
outputChecksum = {
Md5.toMd5Directories(listOf(KFiles.makeOutputTestDir(project)))
},
task = { project -> doTaskCompileTest(project) }
)
} }
open val compiler: ICompilerContributor? = null open val compiler: ICompilerContributor? = null