aboutsummaryrefslogtreecommitdiff
path: root/gradle-plugin
diff options
context:
space:
mode:
authorTing-Yuan Huang <laszio@google.com>2021-09-03 11:43:09 -0700
committerlaszio <ting-yuan@users.noreply.github.com>2021-09-07 07:30:10 -0700
commit7a596995f0d03cb60eff6a98775e6d1a1c2a6fd5 (patch)
treecd26acd85ac51c301f2d21ca6142b67af0dbccef /gradle-plugin
parent78a5217cb60eb6fae58052a59b63a40b555f93b2 (diff)
downloadksp-7a596995f0d03cb60eff6a98775e6d1a1c2a6fd5.tar.gz
Keep KSP from picking up generated sources by itself
Diffstat (limited to 'gradle-plugin')
-rw-r--r--gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspSubplugin.kt9
1 files changed, 9 insertions, 0 deletions
diff --git a/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspSubplugin.kt b/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspSubplugin.kt
index 30bec0d5..dcf46f25 100644
--- a/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspSubplugin.kt
+++ b/gradle-plugin/src/main/kotlin/com/google/devtools/ksp/gradle/KspSubplugin.kt
@@ -63,6 +63,7 @@ import org.jetbrains.kotlin.incremental.isJavaFile
import org.jetbrains.kotlin.incremental.isKotlinFile
import org.jetbrains.kotlin.utils.addToStdlib.ifNotEmpty
import java.io.File
+import java.nio.file.Paths
import java.util.*
import java.util.concurrent.Callable
import javax.inject.Inject
@@ -304,6 +305,7 @@ class KspGradleSubplugin @Inject internal constructor(private val registry: Tool
kspTask.source(sourceRoots.javaSourceRoots)
}
}
+ kspTask.source.filter { !kspOutputDir.isParentOf(it) }
// Don't support binary generation for K/N yet.
// FIXME: figure out how to add user generated libraries.
@@ -863,3 +865,10 @@ internal inline fun <reified T : CommonCompilerArguments> dumpArgs(args: T): Map
return argumentProperties.associate(args::toPair).toSortedMap()
}
+
+internal fun File.isParentOf(childCandidate: File): Boolean {
+ val parentPath = Paths.get(this.absolutePath).normalize()
+ val childCandidatePath = Paths.get(childCandidate.absolutePath).normalize()
+
+ return childCandidatePath.startsWith(parentPath)
+}