Log skipped transformers

This commit is contained in:
shedaniel
2021-01-25 01:00:37 +08:00
parent 5326d4b01d
commit bde966049e
7 changed files with 36 additions and 4 deletions

View File

@@ -37,13 +37,22 @@ open class TransformingTask : Jar() {
Files.deleteIfExists(o)
Files.createDirectories(o.parent)
runCatching {
var skipped = false
measureTime {
transformer(project, i, o)
try {
transformer(project, i, o)
} catch (ignored: TransformerStepSkipped) {
skipped = true
}
if (index != 0) {
Files.deleteIfExists(i)
}
}.let { duration ->
project.logger.lifecycle(":finished transforming step ${index + 1}/${transformers.size} [${transformer::class.simpleName}] in $duration")
if (skipped) {
project.logger.lifecycle(":skipped transforming step ${index + 1}/${transformers.size} [${transformer::class.simpleName}] in $duration")
} else {
project.logger.lifecycle(":finished transforming step ${index + 1}/${transformers.size} [${transformer::class.simpleName}] in $duration")
}
}
}.onFailure {
throw RuntimeException(
@@ -94,4 +103,6 @@ fun Project.projectUniqueIdentifier(): String {
return "architectury_inject_${name}_$id".filter { Character.isJavaIdentifierPart(it) }
}
typealias Transformer = (project: Project, input: Path, output: Path) -> Unit
typealias Transformer = (project: Project, input: Path, output: Path) -> Unit
object TransformerStepSkipped : Throwable()

View File

@@ -1,6 +1,7 @@
package me.shedaniel.architect.plugin.transformers
import me.shedaniel.architect.plugin.Transformer
import me.shedaniel.architect.plugin.TransformerStepSkipped
import net.fabricmc.loom.LoomGradleExtension
import org.gradle.api.Project
import java.nio.file.Files
@@ -36,6 +37,8 @@ object AddRefmapName : Transformer {
) as Boolean
) {
project.logger.debug("Transformed mixin reference maps in output JAR!")
} else {
throw TransformerStepSkipped
}
}
}

View File

@@ -4,6 +4,7 @@ import com.google.gson.GsonBuilder
import com.google.gson.JsonObject
import com.google.gson.JsonParser
import me.shedaniel.architect.plugin.Transformer
import me.shedaniel.architect.plugin.TransformerStepSkipped
import net.fabricmc.loom.LoomGradleExtension
import org.gradle.api.Project
import org.zeroturnaround.zip.ZipUtil
@@ -83,6 +84,9 @@ object FixForgeMixin : Transformer {
}
} else {
project.logger.info("Failed to locate refmap: $refmap")
if (mixinConfigs.isEmpty()) {
throw TransformerStepSkipped
}
}
}

View File

@@ -1,6 +1,7 @@
package me.shedaniel.architect.plugin.transformers
import me.shedaniel.architect.plugin.Transformer
import me.shedaniel.architect.plugin.TransformerStepSkipped
import me.shedaniel.architect.plugin.utils.validateJarFs
import net.fabricmc.loom.LoomGradleExtension
import net.fabricmc.loom.util.LoggerFilter
@@ -34,7 +35,7 @@ object RemapMixinVariables : Transformer {
if (!requiresRemap) {
Files.copy(input, output)
return
throw TransformerStepSkipped
}
val remapper = remapperBuilder.build()

View File

@@ -1,6 +1,7 @@
package me.shedaniel.architect.plugin.transformers
import me.shedaniel.architect.plugin.Transformer
import me.shedaniel.architect.plugin.TransformerStepSkipped
import org.gradle.api.Project
import org.zeroturnaround.zip.ZipUtil
import java.nio.file.Files
@@ -11,6 +12,8 @@ object RemoveFabricModJson : Transformer {
Files.copy(input, output)
if (ZipUtil.containsEntry(output.toFile(), "fabric.mod.json")) {
ZipUtil.removeEntry(output.toFile(), "fabric.mod.json")
} else {
throw TransformerStepSkipped
}
}
}

View File

@@ -1,6 +1,7 @@
package me.shedaniel.architect.plugin.transformers
import me.shedaniel.architect.plugin.Transformer
import me.shedaniel.architect.plugin.TransformerStepSkipped
import me.shedaniel.architect.plugin.utils.validateJarFs
import net.fabricmc.loom.LoomGradleExtension
import net.fabricmc.loom.util.LoggerFilter
@@ -53,6 +54,7 @@ object TransformForgeEnvironment : Transformer {
}
private fun mapMixin(project: Project, remapperBuilder: TinyRemapper.Builder) {
var remap = false
val loomExtension = project.extensions.getByType(LoomGradleExtension::class.java)
val srg = project.extensions.getByType(LoomGradleExtension::class.java).mappingsProvider.mappingsWithSrg
for (mixinMapFile in loomExtension.allMixinMappings) {
@@ -65,6 +67,7 @@ object TransformForgeEnvironment : Transformer {
.firstOrNull { it.getName("intermediary") == dstName }
?.getName("srg") ?: dstName
)
remap = true
}
override fun acceptMethod(method: IMappingProvider.Member, dstName: String) {
@@ -74,6 +77,7 @@ object TransformForgeEnvironment : Transformer {
.flatMap { it.methods }
.firstOrNull { it.getName("intermediary") == dstName }
?.getName("srg") ?: dstName)
remap = true
}
override fun acceptField(field: IMappingProvider.Member, dstName: String) {
@@ -83,6 +87,7 @@ object TransformForgeEnvironment : Transformer {
.flatMap { it.fields }
.firstOrNull { it.getName("intermediary") == dstName }
?.getName("srg") ?: dstName)
remap = true
}
override fun acceptMethodArg(method: IMappingProvider.Member, lvIndex: Int, dstName: String) {}
@@ -99,5 +104,8 @@ object TransformForgeEnvironment : Transformer {
}
}
}
if (!remap) {
throw TransformerStepSkipped
}
}
}

View File

@@ -2,6 +2,7 @@ package me.shedaniel.architect.plugin.transformers
import me.shedaniel.architect.plugin.ArchitectPluginExtension
import me.shedaniel.architect.plugin.Transformer
import me.shedaniel.architect.plugin.TransformerStepSkipped
import me.shedaniel.architect.plugin.projectUniqueIdentifier
import me.shedaniel.architect.plugin.utils.validateJarFs
import net.fabricmc.loom.util.LoggerFilter
@@ -23,6 +24,7 @@ object TransformInjectables : Transformer {
transformArchitecturyInjectables(project, input, output)
} else {
Files.copy(input, output)
throw TransformerStepSkipped
}
}