aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authormodmuss50 <modmuss50@gmail.com>2021-11-26 23:10:35 +0000
committermodmuss50 <modmuss50@gmail.com>2021-11-26 23:10:35 +0000
commit4b45783a5460c6cbd63cdc89b32fcaeb584a95e3 (patch)
treefe41a44c4229587a7cd862ce8700d8c4d877383f /src/main/java
parent60c908ea1b88e008b776e9f62dc71254aa617e94 (diff)
downloadarchitectury-loom-4b45783a5460c6cbd63cdc89b32fcaeb584a95e3.tar.gz
architectury-loom-4b45783a5460c6cbd63cdc89b32fcaeb584a95e3.tar.bz2
architectury-loom-4b45783a5460c6cbd63cdc89b32fcaeb584a95e3.zip
Fix crash on Java 18 due to unpick using an outdated asm version.
Unpick will now get the same version of asm that loom is running with on its classpath.
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/providers/mappings/MappingsProviderImpl.java15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/mappings/MappingsProviderImpl.java b/src/main/java/net/fabricmc/loom/configuration/providers/mappings/MappingsProviderImpl.java
index 3f851425..8ed07b90 100644
--- a/src/main/java/net/fabricmc/loom/configuration/providers/mappings/MappingsProviderImpl.java
+++ b/src/main/java/net/fabricmc/loom/configuration/providers/mappings/MappingsProviderImpl.java
@@ -48,6 +48,7 @@ import com.google.gson.JsonObject;
import org.apache.tools.ant.util.StringUtils;
import org.gradle.api.Project;
import org.jetbrains.annotations.Nullable;
+import org.objectweb.asm.Opcodes;
import net.fabricmc.loom.LoomGradleExtension;
import net.fabricmc.loom.LoomGradlePlugin;
@@ -304,6 +305,20 @@ public class MappingsProviderImpl extends DependencyProvider implements Mappings
getProject().getDependencies().add(Constants.Configurations.UNPICK_CLASSPATH,
String.format("%s:%s:%s", unpickMetadata.unpickGroup, unpickCliName, unpickMetadata.unpickVersion)
);
+
+ // Unpick ships with a slightly older version of asm, ensure it runs with at least the same version as loom.
+ String[] asmDeps = new String[] {
+ "org.ow2.asm:asm:%s",
+ "org.ow2.asm:asm-tree:%s",
+ "org.ow2.asm:asm-commons:%s",
+ "org.ow2.asm:asm-util:%s"
+ };
+
+ for (String asm : asmDeps) {
+ getProject().getDependencies().add(Constants.Configurations.UNPICK_CLASSPATH,
+ asm.formatted(Opcodes.class.getPackage().getImplementationVersion())
+ );
+ }
}
private void mergeAndSaveMappings(Project project, Path from, Path out) throws IOException {