Skip to content

Commit f35e036

Browse files
committed
TransformingTask: Fix config cache/Gradle 10 compat
1 parent 75f2a02 commit f35e036

File tree

1 file changed

+27
-8
lines changed

1 file changed

+27
-8
lines changed

src/main/kotlin/dev/architectury/plugin/TransformingTask.kt

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,12 @@ import dev.architectury.transformer.transformers.BuiltinProperties
1313
import dev.architectury.transformer.transformers.base.ClassEditTransformer
1414
import dev.architectury.transformer.util.Logger
1515
import org.gradle.api.Project
16+
import org.gradle.api.file.DirectoryProperty
1617
import org.gradle.api.file.RegularFileProperty
1718
import org.gradle.api.provider.ListProperty
19+
import org.gradle.api.provider.MapProperty
20+
import org.gradle.api.provider.Property
21+
import org.gradle.api.tasks.Input
1822
import org.gradle.api.tasks.InputFile
1923
import org.gradle.api.tasks.Internal
2024
import org.gradle.api.tasks.TaskAction
@@ -25,7 +29,6 @@ import java.nio.file.Path
2529
import java.util.*
2630
import java.util.function.BiConsumer
2731
import kotlin.properties.Delegates
28-
import kotlin.time.ExperimentalTime
2932

3033
open class TransformingTask : Jar() {
3134
@InputFile
@@ -37,20 +40,38 @@ open class TransformingTask : Jar() {
3740
@Internal
3841
val postTransformers: ListProperty<ClassEditTransformer> = project.objects.listProperty(ClassEditTransformer::class.java)
3942

43+
// TODO: Replace completely with a property
44+
var platform: String?
45+
@Internal
46+
get() = platformProperty.orNull
47+
set(value) = platformProperty.set(value)
48+
49+
@Input
50+
protected val platformProperty: Property<String> = project.objects.property(String::class.java)
51+
52+
@Input
53+
val properties: MapProperty<String, String> = project.objects.mapProperty(String::class.java, String::class.java)
54+
4055
@Internal
41-
var platform: String? = null
56+
val transformerLocation: DirectoryProperty = project.objects.directoryProperty()
57+
58+
init {
59+
properties.set(platformProperty.map { platform ->
60+
val extension = project.extensions.getByType(ArchitectPluginExtension::class.java)
61+
extension.properties(platform)
62+
})
63+
transformerLocation.set(project.file(".gradle"))
64+
}
4265

43-
@ExperimentalTime
4466
@TaskAction
4567
fun doTask() {
4668
val input: Path = this.input.asFile.get().toPath()
4769
val output: Path = this.archiveFile.get().asFile.toPath()
4870

49-
val extension = project.extensions.getByType(ArchitectPluginExtension::class.java)
50-
extension.properties(platform ?: throw NullPointerException("No Platform specified")).forEach { (key, value) ->
71+
for ((key, value) in properties.get()) {
5172
System.setProperty(key, value)
5273
}
53-
System.setProperty(BuiltinProperties.LOCATION, project.file(".gradle").absolutePath)
74+
System.setProperty(BuiltinProperties.LOCATION, transformerLocation.get().asFile.absolutePath)
5475
Logger.debug("")
5576
Logger.debug("============================")
5677
Logger.debug("Transforming from $input to $output")
@@ -132,5 +153,3 @@ fun Project.projectUniqueIdentifier(): String {
132153
if (project.rootProject != project) name = project.rootProject.name + "_" + name
133154
return "architectury_inject_${name}_$id".filter { Character.isJavaIdentifierPart(it) }
134155
}
135-
136-
class Epic : RuntimeException()

0 commit comments

Comments
 (0)