mirror of
https://github.com/architectury/architectury-plugin.git
synced 2026-03-28 04:07:01 -05:00
TransformingTask: Fix config cache/Gradle 10 compat
This commit is contained in:
@@ -13,8 +13,12 @@ import dev.architectury.transformer.transformers.BuiltinProperties
|
|||||||
import dev.architectury.transformer.transformers.base.ClassEditTransformer
|
import dev.architectury.transformer.transformers.base.ClassEditTransformer
|
||||||
import dev.architectury.transformer.util.Logger
|
import dev.architectury.transformer.util.Logger
|
||||||
import org.gradle.api.Project
|
import org.gradle.api.Project
|
||||||
|
import org.gradle.api.file.DirectoryProperty
|
||||||
import org.gradle.api.file.RegularFileProperty
|
import org.gradle.api.file.RegularFileProperty
|
||||||
import org.gradle.api.provider.ListProperty
|
import org.gradle.api.provider.ListProperty
|
||||||
|
import org.gradle.api.provider.MapProperty
|
||||||
|
import org.gradle.api.provider.Property
|
||||||
|
import org.gradle.api.tasks.Input
|
||||||
import org.gradle.api.tasks.InputFile
|
import org.gradle.api.tasks.InputFile
|
||||||
import org.gradle.api.tasks.Internal
|
import org.gradle.api.tasks.Internal
|
||||||
import org.gradle.api.tasks.TaskAction
|
import org.gradle.api.tasks.TaskAction
|
||||||
@@ -25,7 +29,6 @@ import java.nio.file.Path
|
|||||||
import java.util.*
|
import java.util.*
|
||||||
import java.util.function.BiConsumer
|
import java.util.function.BiConsumer
|
||||||
import kotlin.properties.Delegates
|
import kotlin.properties.Delegates
|
||||||
import kotlin.time.ExperimentalTime
|
|
||||||
|
|
||||||
open class TransformingTask : Jar() {
|
open class TransformingTask : Jar() {
|
||||||
@InputFile
|
@InputFile
|
||||||
@@ -37,20 +40,38 @@ open class TransformingTask : Jar() {
|
|||||||
@Internal
|
@Internal
|
||||||
val postTransformers: ListProperty<ClassEditTransformer> = project.objects.listProperty(ClassEditTransformer::class.java)
|
val postTransformers: ListProperty<ClassEditTransformer> = project.objects.listProperty(ClassEditTransformer::class.java)
|
||||||
|
|
||||||
|
// TODO: Replace completely with a property
|
||||||
|
var platform: String?
|
||||||
@Internal
|
@Internal
|
||||||
var platform: String? = null
|
get() = platformProperty.orNull
|
||||||
|
set(value) = platformProperty.set(value)
|
||||||
|
|
||||||
|
@Input
|
||||||
|
protected val platformProperty: Property<String> = project.objects.property(String::class.java)
|
||||||
|
|
||||||
|
@Input
|
||||||
|
val properties: MapProperty<String, String> = project.objects.mapProperty(String::class.java, String::class.java)
|
||||||
|
|
||||||
|
@Internal
|
||||||
|
val transformerLocation: DirectoryProperty = project.objects.directoryProperty()
|
||||||
|
|
||||||
|
init {
|
||||||
|
properties.set(platformProperty.map { platform ->
|
||||||
|
val extension = project.extensions.getByType(ArchitectPluginExtension::class.java)
|
||||||
|
extension.properties(platform)
|
||||||
|
})
|
||||||
|
transformerLocation.set(project.file(".gradle"))
|
||||||
|
}
|
||||||
|
|
||||||
@ExperimentalTime
|
|
||||||
@TaskAction
|
@TaskAction
|
||||||
fun doTask() {
|
fun doTask() {
|
||||||
val input: Path = this.input.asFile.get().toPath()
|
val input: Path = this.input.asFile.get().toPath()
|
||||||
val output: Path = this.archiveFile.get().asFile.toPath()
|
val output: Path = this.archiveFile.get().asFile.toPath()
|
||||||
|
|
||||||
val extension = project.extensions.getByType(ArchitectPluginExtension::class.java)
|
for ((key, value) in properties.get()) {
|
||||||
extension.properties(platform ?: throw NullPointerException("No Platform specified")).forEach { (key, value) ->
|
|
||||||
System.setProperty(key, value)
|
System.setProperty(key, value)
|
||||||
}
|
}
|
||||||
System.setProperty(BuiltinProperties.LOCATION, project.file(".gradle").absolutePath)
|
System.setProperty(BuiltinProperties.LOCATION, transformerLocation.get().asFile.absolutePath)
|
||||||
Logger.debug("")
|
Logger.debug("")
|
||||||
Logger.debug("============================")
|
Logger.debug("============================")
|
||||||
Logger.debug("Transforming from $input to $output")
|
Logger.debug("Transforming from $input to $output")
|
||||||
@@ -132,5 +153,3 @@ fun Project.projectUniqueIdentifier(): String {
|
|||||||
if (project.rootProject != project) name = project.rootProject.name + "_" + name
|
if (project.rootProject != project) name = project.rootProject.name + "_" + name
|
||||||
return "architectury_inject_${name}_$id".filter { Character.isJavaIdentifierPart(it) }
|
return "architectury_inject_${name}_$id".filter { Character.isJavaIdentifierPart(it) }
|
||||||
}
|
}
|
||||||
|
|
||||||
class Epic : RuntimeException()
|
|
||||||
|
|||||||
Reference in New Issue
Block a user