Skip to content

Commit 5d9a95f

Browse files
authored
Fix configuration cache (#934)
1 parent 7ed3062 commit 5d9a95f

3 files changed

Lines changed: 32 additions & 30 deletions

File tree

kt/plugins/godot-gradle-plugin/src/main/kotlin/godot/gradle/projectExt/setupTasks.kt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -158,29 +158,30 @@ private fun Project.registerUserFacingBuildTasks() {
158158
private fun Project.setupEntryGenerationTasks(
159159
classesTask: TaskProvider<out Task>,
160160
): EntryGenerationTasks {
161+
val fastBuildRequested = isFastBuildRequested()
161162
val packageUserJarTask = packageUserJarTask(
162163
userClassesTask = classesTask,
163164
)
164165
val generateEntryFilesTask = entryGenerationGenerateFilesTask(
165166
packageUserJarTask = packageUserJarTask,
166167
)
167168
generateEntryFilesTask.configure { task ->
168-
task.onlyIf { !isFastBuildRequested() }
169+
task.onlyIf { !fastBuildRequested }
169170
}
170171

171172
val updateRegistrationFilesTask = if (godotJvmExtension.disableGdj.get()) {
172173
generateEntryFilesTask
173174
} else {
174175
val indexExistingRegistrationFilesTask = entryGenerationIndexExistingRegistrationFilesTask()
175176
indexExistingRegistrationFilesTask.configure { task ->
176-
task.onlyIf { !isFastBuildRequested() }
177+
task.onlyIf { !fastBuildRequested }
177178
}
178179
entryGenerationSyncRegistrationFilesTask(
179180
generateEntryFilesTask = generateEntryFilesTask,
180181
indexExistingRegistrationFilesTask = indexExistingRegistrationFilesTask,
181182
).also { taskProvider ->
182183
taskProvider.configure { task ->
183-
task.onlyIf { !isFastBuildRequested() }
184+
task.onlyIf { !fastBuildRequested }
184185
}
185186
}
186187
}
@@ -189,7 +190,7 @@ private fun Project.setupEntryGenerationTasks(
189190
generateEntryFilesTask = generateEntryFilesTask,
190191
)
191192
generatedEntryJarTask.configure { task ->
192-
task.onlyIf { !isFastBuildRequested() }
193+
task.onlyIf { !fastBuildRequested }
193194
}
194195

195196
return EntryGenerationTasks(

kt/plugins/godot-gradle-plugin/src/main/kotlin/godot/gradle/tasks/entry_generation/ClassGraphIndexExistingRegistrationFilesTask.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,14 +150,17 @@ internal fun readGeneratedRegistrationFiles(generatedRoot: File, logger: org.gra
150150
}
151151

152152
fun Project.entryGenerationIndexExistingRegistrationFilesTask(): TaskProvider<ClassGraphIndexExistingRegistrationFilesTask> {
153+
val godotProjectDir = requireConfiguredGodotProjectDirectory()
154+
val registrationFileTree = godotRegistrationFileTree(godotProjectDir)
155+
153156
return tasks.register(
154157
"entryGenerationIndexExistingRegistrationFiles",
155158
ClassGraphIndexExistingRegistrationFilesTask::class.java
156159
) { task ->
157160
task.group = "godot-kotlin-jvm-internal"
158161
task.description = "Indexes existing .gdj files across the Godot project."
159-
task.godotProjectDirPath.convention(providers.provider { requireConfiguredGodotProjectDirectory().absolutePath })
160-
task.existingRegistrationFiles.from(providers.provider { godotRegistrationFileTree(requireConfiguredGodotProjectDirectory()) })
162+
task.godotProjectDirPath.convention(godotProjectDir.absolutePath)
163+
task.existingRegistrationFiles.from(registrationFileTree)
161164
task.existingRegistrationFilesIndexFile.convention(
162165
layout.buildDirectory.file("intermediates/entry-generation/existing-registration-files.idx")
163166
)

kt/plugins/godot-gradle-plugin/src/main/kotlin/godot/gradle/tasks/entry_generation/ClassGraphUpdateRegistrationFilesTask.kt

Lines changed: 22 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -98,22 +98,20 @@ fun Project.entryGenerationSyncRegistrationFilesTask(
9898
generateEntryFilesTask: TaskProvider<ClassGraphGenerateEntryFilesTask>,
9999
indexExistingRegistrationFilesTask: TaskProvider<ClassGraphIndexExistingRegistrationFilesTask>,
100100
): TaskProvider<ClassGraphUpdateRegistrationFilesTask> {
101-
val registrationFilesOutputDir = providers.provider {
102-
(
103-
godotJvmExtension
104-
.registrationFilesDirectory
105-
.orNull
106-
?.asFile
107-
?: projectDir
108-
.resolve("gdj")
109-
.apply { mkdirs() }
110-
)
111-
.relativeTo(projectDir)
112-
.path
113-
.replace(File.separator, "/")
114-
.removePrefix("/")
115-
.removeSuffix("/")
116-
}
101+
val godotProjectDir = requireConfiguredGodotProjectDirectory()
102+
val registrationFilesOutputDirPath = (
103+
godotJvmExtension
104+
.registrationFilesDirectory
105+
.orNull
106+
?.asFile
107+
?: projectDir.resolve("gdj")
108+
)
109+
.relativeTo(projectDir)
110+
.path
111+
.replace(File.separator, "/")
112+
.removePrefix("/")
113+
.removeSuffix("/")
114+
val registrationFilesOutputDir = layout.projectDirectory.dir(registrationFilesOutputDirPath)
117115

118116
return tasks.register(
119117
"entryGenerationSyncRegistrationFiles",
@@ -126,25 +124,25 @@ fun Project.entryGenerationSyncRegistrationFilesTask(
126124
task.generatedRegistrationFilesRootDir.convention(
127125
generateEntryFilesTask.flatMap { it.generatedRegistrationFilesRootDir }
128126
)
129-
task.godotProjectDirPath.convention(providers.provider { requireConfiguredGodotProjectDirectory().absolutePath })
127+
task.godotProjectDirPath.convention(godotProjectDir.absolutePath)
130128
task.existingRegistrationFilesIndexFile.convention(
131129
indexExistingRegistrationFilesTask.flatMap { it.existingRegistrationFilesIndexFile }
132130
)
133-
task.registrationFilesOutputDir.convention(
134-
project.layout.projectDirectory.dir(registrationFilesOutputDir)
135-
)
131+
task.registrationFilesOutputDir.convention(registrationFilesOutputDir)
136132
task.synchronizedRegistrationFiles.from(providers.provider {
137-
val generatedRoot = task.generatedRegistrationFilesRootDir.get().asFile
133+
val generatedRoot = generateEntryFilesTask.get().generatedRegistrationFilesRootDir.get().asFile
138134
val generatedFilesByFileName = readGeneratedRegistrationFiles(generatedRoot, logger)
139-
val existingRegistrationFileIndex = readExistingRegistrationFileIndex(task.existingRegistrationFilesIndexFile.get().asFile)
135+
val existingRegistrationFileIndex = readExistingRegistrationFileIndex(
136+
indexExistingRegistrationFilesTask.get().existingRegistrationFilesIndexFile.get().asFile
137+
)
140138
val matchedFileNames = mutableSetOf<String>()
141139
val synchronizedFiles = mutableListOf<File>()
142-
val targetRoot = task.registrationFilesOutputDir.get().asFile
140+
val targetRoot = registrationFilesOutputDir.asFile
143141

144142
existingRegistrationFileIndex.forEach { indexEntry ->
145143
if (generatedFilesByFileName.containsKey(indexEntry.registrationFileName)) {
146144
matchedFileNames.add(indexEntry.registrationFileName)
147-
synchronizedFiles.add(File(task.godotProjectDirPath.get()).resolve(indexEntry.relativePath))
145+
synchronizedFiles.add(godotProjectDir.resolve(indexEntry.relativePath))
148146
}
149147
}
150148

0 commit comments

Comments
 (0)