From 5966eb1d36407bdd68114d9fc61d6d8da55b97eb Mon Sep 17 00:00:00 2001 From: shedaniel Date: Wed, 30 Dec 2020 22:44:18 +0800 Subject: [PATCH] Add runtime specific artifacts that doesn't include the refmaps --- .../architect/plugin/ArchitectPlugin.kt | 5 ++++ .../plugin/ArchitectPluginExtension.kt | 23 +++++++++++++++++-- .../architect/plugin/RemapMCPTask.kt | 1 - .../architect/plugin/TransformTask.kt | 14 ++++++++--- 4 files changed, 37 insertions(+), 6 deletions(-) diff --git a/src/main/kotlin/me/shedaniel/architect/plugin/ArchitectPlugin.kt b/src/main/kotlin/me/shedaniel/architect/plugin/ArchitectPlugin.kt index d1ea05d..db4da5b 100644 --- a/src/main/kotlin/me/shedaniel/architect/plugin/ArchitectPlugin.kt +++ b/src/main/kotlin/me/shedaniel/architect/plugin/ArchitectPlugin.kt @@ -44,6 +44,11 @@ class ArchitectPlugin : Plugin { project.tasks.register("transformArchitectJar", TransformTask::class.java) { it.group = "Architectury" } + + project.tasks.register("transformArchitectJarRuntime", TransformTask::class.java) { + it.group = "Architectury" + it.addRefmap = false + } project.repositories.apply { mavenCentral() diff --git a/src/main/kotlin/me/shedaniel/architect/plugin/ArchitectPluginExtension.kt b/src/main/kotlin/me/shedaniel/architect/plugin/ArchitectPluginExtension.kt index 8a0447e..87695bc 100644 --- a/src/main/kotlin/me/shedaniel/architect/plugin/ArchitectPluginExtension.kt +++ b/src/main/kotlin/me/shedaniel/architect/plugin/ArchitectPluginExtension.kt @@ -28,6 +28,7 @@ open class ArchitectPluginExtension(val project: Project) { project.configurations.create("transformForgeFakeMod") } project.configurations.create("transformed") + project.configurations.create("transformedRuntime") val buildTask = project.tasks.getByName("build") val jarTask = project.tasks.getByName("jar") { @@ -41,6 +42,17 @@ open class ArchitectPluginExtension(val project: Project) { it.archiveClassifier.set("transformed") it.input.set(jarTask.archiveFile.get()) + project.artifacts.add("archives", it) + it.dependsOn(jarTask) + buildTask.dependsOn(it) + it.outputs.upToDateWhen { false } + } as TransformTask + val transformArchitectRuntimeJarTask = project.tasks.getByName("transformArchitectJarRuntime") { + it as TransformTask + + it.archiveClassifier.set("transformedRuntime") + it.input.set(jarTask.archiveFile.get()) + project.artifacts.add("archives", it) it.dependsOn(jarTask) buildTask.dependsOn(it) @@ -70,9 +82,9 @@ open class ArchitectPluginExtension(val project: Project) { val transformForgeFakeModTask = project.tasks.getByName("transformForgeFakeMod") { it as RemapMCPTask - it.input.set(transformArchitectJarTask.archiveFile.get()) + it.input.set(transformArchitectRuntimeJarTask.archiveFile.get()) it.archiveClassifier.set("transformedForgeFakeMod") - it.dependsOn(transformArchitectJarTask) + it.dependsOn(transformArchitectRuntimeJarTask) buildTask.dependsOn(it) it.outputs.upToDateWhen { false } } as RemapMCPTask @@ -105,6 +117,13 @@ open class ArchitectPluginExtension(val project: Project) { "builtBy" to transformArchitectJarTask ) ) + it.add( + "transformedRuntime", mapOf( + "file" to transformArchitectRuntimeJarTask.archiveFile.get().asFile, + "type" to "jar", + "builtBy" to transformArchitectRuntimeJarTask + ) + ) } } } \ No newline at end of file diff --git a/src/main/kotlin/me/shedaniel/architect/plugin/RemapMCPTask.kt b/src/main/kotlin/me/shedaniel/architect/plugin/RemapMCPTask.kt index 585ae9f..70b3ce8 100644 --- a/src/main/kotlin/me/shedaniel/architect/plugin/RemapMCPTask.kt +++ b/src/main/kotlin/me/shedaniel/architect/plugin/RemapMCPTask.kt @@ -23,7 +23,6 @@ import org.objectweb.asm.Opcodes import org.objectweb.asm.tree.AnnotationNode import org.objectweb.asm.tree.ClassNode import org.objectweb.asm.tree.MethodInsnNode -import org.zeroturnaround.zip.ByteSource import org.zeroturnaround.zip.ZipUtil import java.io.* import java.net.URL diff --git a/src/main/kotlin/me/shedaniel/architect/plugin/TransformTask.kt b/src/main/kotlin/me/shedaniel/architect/plugin/TransformTask.kt index 5a6f1b9..a6ecb33 100644 --- a/src/main/kotlin/me/shedaniel/architect/plugin/TransformTask.kt +++ b/src/main/kotlin/me/shedaniel/architect/plugin/TransformTask.kt @@ -13,6 +13,7 @@ import java.nio.file.Path open class TransformTask : Jar() { val input: RegularFileProperty = GradleSupport.getFileProperty(project) + var addRefmap = true @TaskAction fun doTask() { @@ -22,9 +23,16 @@ open class TransformTask : Jar() { project.logger.lifecycle(":transforming " + input.fileName + " => " + output.fileName) Transform.transform(input, output, transformExpectPlatform()) - val loomExtension = project.extensions.getByType(LoomGradleExtension::class.java) - if (MixinRefmapHelper.addRefmapName(loomExtension.getRefmapName(), loomExtension.mixinJsonVersion, output)) { - project.logger.debug("Transformed mixin reference maps in output JAR!") + if (addRefmap) { + val loomExtension = project.extensions.getByType(LoomGradleExtension::class.java) + if (MixinRefmapHelper.addRefmapName( + loomExtension.getRefmapName(), + loomExtension.mixinJsonVersion, + output + ) + ) { + project.logger.debug("Transformed mixin reference maps in output JAR!") + } } } } \ No newline at end of file