From 669b6cf6cb004ca0794b5f3b41c269847234b181 Mon Sep 17 00:00:00 2001 From: Cedric Beust Date: Sat, 16 Jul 2016 19:09:07 -0700 Subject: [PATCH] Remote duplicate paths. --- .../com/beust/kobalt/internal/CompilerUtils.kt | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/CompilerUtils.kt b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/CompilerUtils.kt index b9e8652d..27cc8f0b 100644 --- a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/CompilerUtils.kt +++ b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/internal/CompilerUtils.kt @@ -8,6 +8,7 @@ import com.beust.kobalt.misc.KFiles import com.beust.kobalt.misc.log import com.google.inject.Inject import java.io.File +import java.nio.file.Paths import java.util.* /** @@ -114,7 +115,9 @@ class CompilerUtils @Inject constructor(val files: KFiles, File(project.directory, it.path).exists() }.filter { ! KFiles.isResource(it.path) - }.distinct() + }.distinctBy { + Paths.get(it.path) + } // Now that we have all the source directories, find all the source files in them. Note that // depending on the compiler's ability, sourceFiles can actually contain a list of directories @@ -149,13 +152,18 @@ class CompilerUtils @Inject constructor(val files: KFiles, // Add all the source directories contributed as potential Java directories too // (except our own) context.pluginInfo.sourceDirContributors.forEach { - extraSourceFiles.addAll(it.sourceDirectoriesFor(project, context).map { it.path }) + val sd = it.sourceDirectoriesFor(project, context).map { it.path } + .filter { ! it.contains("kotlin") } + if (! sd.contains("kotlin")) { + extraSourceFiles.addAll(sd) + } } } } } - val allSources = (sourceFiles + extraSourceFiles) + val distinctSources = (sourceFiles + extraSourceFiles).distinctBy { File(it).toURI().normalize().path } + val allSources = distinctSources .map { File(it).path } .distinct() .filter { File(it).exists() }