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

More test resource fixes.

This commit is contained in:
Cedric Beust 2016-02-19 22:34:25 +04:00
parent 345dd8440c
commit c7a094040d
4 changed files with 32 additions and 11 deletions

View file

@ -48,7 +48,7 @@ class Variant(val initialProductFlavor: ProductFlavorConfig? = null,
}
}
return result.toList()
return result.filter { ! KFiles.isResource(it.path) }.toList()
}
/**
@ -56,7 +56,7 @@ class Variant(val initialProductFlavor: ProductFlavorConfig? = null,
*/
fun resourceDirectories(project: Project, sourceSet: SourceSet = SourceSet.MAIN)
= sourceDirectories(project, "resources", variantFirst = false, sourceSet = sourceSet)
.filter { it.path.contains("resources") || it.path.contains("res") }
.filter { KFiles.isResource(it.path) }
/**
* suffix is either "java" (to find source files) or "resources" (to find resources).

View file

@ -9,3 +9,10 @@ interface ITestSourceDirectoryContributor {
fun testSourceDirectoriesFor(project: Project, context: KobaltContext): List<File>
}
fun KobaltContext.testSourceDirectories(project: Project) : List<File> {
val result = pluginInfo.testSourceDirContributors.flatMap {
it.testSourceDirectoriesFor(project, this)
}
return result
}

View file

@ -174,8 +174,14 @@ open class JvmCompilerPlugin @Inject constructor(
} else {
compilerContributors.forEach { contributor ->
contributor.compilersFor(project, context).forEach { compiler ->
val contributedSourceDirs =
if (isTest) {
context.testSourceDirectories(project)
} else {
context.sourceDirectories(project)
}
val sourceFiles = KFiles.findSourceFiles(project.directory,
context.sourceDirectories(project).map { it.path }, compiler.sourceSuffixes)
contributedSourceDirs.map { it.path }, compiler.sourceSuffixes)
if (sourceFiles.size > 0) {
// TODO: createCompilerActionInfo recalculates the source files, only compute them
// once and pass them
@ -268,15 +274,21 @@ open class JvmCompilerPlugin @Inject constructor(
})
// Transform them with the interceptors, if any
val allSourceDirectories = if (isTest) {
initialSourceDirectories
} else {
context.pluginInfo.sourceDirectoriesInterceptors.fold(initialSourceDirectories.toList(),
{ sd, interceptor -> interceptor.intercept(project, context, sd) })
}.filter {
File(project.directory, it.path).exists()
}
val allSourceDirectories =
if (isTest) {
initialSourceDirectories
} else {
context.pluginInfo.sourceDirectoriesInterceptors.fold(initialSourceDirectories.toList(),
{ sd, interceptor -> interceptor.intercept(project, context, sd) })
}.filter {
File(project.directory, it.path).exists()
}.filter {
! KFiles.isResource(it.path)
}.distinct()
if (allSourceDirectories.any { KFiles.isResource(it.path) }) {
println("PROBLEM")
}
// Now that we have all the source directories, find all the source files in them
val sourceFiles = files.findRecursively(projectDirectory, allSourceDirectories,
{ file -> sourceSuffixes.any { file.endsWith(it) }})

View file

@ -310,6 +310,8 @@ class KFiles {
}
return result
}
fun isResource(name: String) = name.contains("res") || name.contains("resources")
}
fun findRecursively(directory: File, function: Function1<String, Boolean>): List<String> {