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

Temporary hack to fix annotation processing builds.

This commit is contained in:
Cedric Beust 2016-07-09 02:42:16 -08:00
parent 1b6cbd842c
commit 1c9514ede8
2 changed files with 26 additions and 12 deletions

View file

@ -82,7 +82,13 @@ class CompilerUtils @Inject constructor(val files: KFiles,
// The classpath needs to contain $buildDirectory/classes as well so that projects that contain // The classpath needs to contain $buildDirectory/classes as well so that projects that contain
// multiple languages can use classes compiled by the compiler run before them. // multiple languages can use classes compiled by the compiler run before them.
if (buildDirectory.exists()) { fun containsClassFiles(dir: File) =
KFiles.containsCertainFile(dir) {
it.isFile && it.name.endsWith("class")
}
// if (buildDirectory.exists()) {
if (containsClassFiles(buildDirectory)) {
classpath += FileDependency(buildDirectory.path) classpath += FileDependency(buildDirectory.path)
} }
@ -129,18 +135,10 @@ class CompilerUtils @Inject constructor(val files: KFiles,
// is compiler agnostic, doesn't hardcode Kotlin specific stuff // is compiler agnostic, doesn't hardcode Kotlin specific stuff
val extraSourceFiles = arrayListOf<String>() val extraSourceFiles = arrayListOf<String>()
fun containsJavaFiles(dir: File) : Boolean { fun containsJavaFiles(dir: File) =
if (dir.isDirectory) { KFiles.containsCertainFile(dir) {
val directories = arrayListOf<File>() it.isFile && it.name.endsWith("java")
dir.listFiles().forEach {
if (it.isFile && it.name.endsWith("java")) return true
if (it.isDirectory) directories.add(it)
}
return directories.any { containsJavaFiles(it) }
} else {
return false
} }
}
if (sourceSuffixes.any { it.contains("kt")}) { if (sourceSuffixes.any { it.contains("kt")}) {
val directories = if (isTest) project.sourceDirectoriesTest else project.sourceDirectories val directories = if (isTest) project.sourceDirectoriesTest else project.sourceDirectories

View file

@ -330,6 +330,22 @@ class KFiles {
} }
fun isResource(name: String) = name.contains("res") || name.contains("resources") fun isResource(name: String) = name.contains("res") || name.contains("resources")
/**
* @return true as soon as a file meeting the condition is found.
*/
fun containsCertainFile(dir: File, condition: (File) -> Boolean) : Boolean {
if (dir.isDirectory) {
val directories = arrayListOf<File>()
dir.listFiles().forEach {
if (condition(it)) return true
if (it.isDirectory) directories.add(it)
}
return directories.any { containsCertainFile(it, condition) }
} else {
return false
}
}
} }
fun findRecursively(directory: File, function: Function1<String, Boolean>): List<String> { fun findRecursively(directory: File, function: Function1<String, Boolean>): List<String> {