diff --git a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/FileSpec.kt b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/FileSpec.kt index 480a8553..af798ac6 100644 --- a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/FileSpec.kt +++ b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/FileSpec.kt @@ -22,37 +22,32 @@ sealed class IFileSpec { constructor(spec: String) : this(arrayListOf(spec)) - private fun isIncluded(includeMatchers: Glob, excludes: List, rel: Path) : Boolean { + private fun isIncluded(excludes: List, rel: Path) : Boolean { excludes.forEach { if (it.matches(rel)) { log(2, "Excluding ${rel.toFile()}") return false } } - if (includeMatchers.matches(rel)) { - log(2, "Including ${rel.toFile().absolutePath}") - return true - } - log(2, "Excluding ${rel.toFile()} (not matching any include pattern") - return false + log(2, "Including ${rel.toFile().absolutePath}") + return true } override fun toFiles(filePath: String, excludes: List): List { val result = arrayListOf() - val includes = Glob(*spec.toTypedArray()) if (File(filePath).isDirectory) { Files.walkFileTree(Paths.get(filePath), object : SimpleFileVisitor() { override public fun visitFile(path: Path, attrs: BasicFileAttributes): FileVisitResult { val rel = Paths.get(filePath).relativize(path) - if (isIncluded(includes, excludes, rel)) { + if (isIncluded(excludes, rel)) { result.add(rel.toFile()) } return FileVisitResult.CONTINUE } }) } else { - if (isIncluded(includes, excludes, Paths.get(filePath))) { + if (isIncluded(excludes, Paths.get(filePath))) { result.add(File(filePath)) } } diff --git a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/JvmCompilerPlugin.kt b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/JvmCompilerPlugin.kt index cfb4f637..f542a959 100644 --- a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/JvmCompilerPlugin.kt +++ b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/JvmCompilerPlugin.kt @@ -259,7 +259,7 @@ open class JvmCompilerPlugin @Inject constructor( buildDirectory.mkdirs() - val initialSourceDirectories = ArrayList(sourceDirectories) + val initialSourceDirectories = ArrayList() // Source directories from the contributors initialSourceDirectories.addAll( if (isTest) { @@ -270,18 +270,23 @@ 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() - } + initialSourceDirectories + } else { + context.pluginInfo.sourceDirectoriesInterceptors.fold(initialSourceDirectories.toList(), + { sd, interceptor -> interceptor.intercept(project, context, sd) }) + }.filter { + File(project.directory, it.path).exists() + } // 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) }}) - .map { File(projectDirectory, it).path } + + val sourceFiles = if (allSourceDirectories.size > 0) { + files.findRecursively(projectDirectory, allSourceDirectories, + { file -> sourceSuffixes.any { file.endsWith(it) } }) + .map { File(projectDirectory, it).path } + } else { + emptyList() + } // Special treatment if we are compiling Kotlin files and the project also has a java source // directory. In this case, also pass that java source directory to the Kotlin compiler as is