Skip to content

Commit 2da2949

Browse files
committed
fix: Make GenerateNativeBridgesTask configuration cache compatible
Replace project.files() with objectFactory.fileCollection() to avoid serializing Project reference at execution time, which violates configuration cache requirements.
1 parent 2602e0f commit 2da2949

1 file changed

Lines changed: 5 additions & 1 deletion

File tree

plugin-build/plugin/src/main/kotlin/io/github/kdroidfilter/nucleusnativeaccess/plugin/tasks/GenerateNativeBridgesTask.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,15 @@ import org.gradle.api.tasks.PathSensitivity
1414
import org.gradle.api.tasks.SkipWhenEmpty
1515
import org.gradle.api.tasks.TaskAction
1616
import org.gradle.work.DisableCachingByDefault
17+
import org.gradle.api.model.ObjectFactory
1718
import org.gradle.workers.WorkerExecutor
1819
import javax.inject.Inject
1920

2021
@DisableCachingByDefault(because = "Bridge generation depends on source analysis that is not yet cacheable")
2122
abstract class GenerateNativeBridgesTask : DefaultTask() {
2223

2324
@get:Inject abstract val workerExecutor: WorkerExecutor
25+
@get:Inject abstract val objectFactory: ObjectFactory
2426

2527
@get:InputFiles @get:SkipWhenEmpty @get:PathSensitive(PathSensitivity.RELATIVE)
2628
abstract val nativeSources: ConfigurableFileCollection
@@ -47,7 +49,9 @@ abstract class GenerateNativeBridgesTask : DefaultTask() {
4749
logger.lifecycle("kne: Parsing ${ktFiles.size} native + ${commonKtFiles.size} common source file(s) [PSI]...")
4850

4951
val pluginJarUrl = PsiParseWorkAction::class.java.protectionDomain?.codeSource?.location
50-
val pluginJar = pluginJarUrl?.let { project.files(java.io.File(it.toURI())) } ?: project.files()
52+
val pluginJar = objectFactory.fileCollection().apply {
53+
pluginJarUrl?.let { from(java.io.File(it.toURI())) }
54+
}
5155

5256
val workQueue = workerExecutor.classLoaderIsolation { spec ->
5357
spec.classpath.from(psiClasspath)

0 commit comments

Comments
 (0)