Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ version = "1.0"
accessWidener = "2.1.0"
asm = "9.7.1"
checker = "3.48.4"
forgeAutoRenamingTool = "1.0.8"
vineFlower = "1.10.1"
ideaExt = "1.3"
immutables = "2.10.1"
Expand All @@ -26,7 +25,6 @@ accessWidener = { module = "net.fabricmc:access-widener", version.ref = "accessW
asm = { module = "org.ow2.asm:asm", version.ref = "asm" }
asm-commons = { module = "org.ow2.asm:asm-commons", version.ref = "asm" }
asm-util = { module = "org.ow2.asm:asm-util", version.ref = "asm" }
forgeAutoRenamingTool = { module = "net.minecraftforge:ForgeAutoRenamingTool", version.ref = "forgeAutoRenamingTool" }
vineFlower = { module = "org.vineflower:vineflower", version.ref = "vineFlower" }
gson = { module = "com.google.code.gson:gson", version = "2.11.0" }
ideaExt = { module = "gradle.plugin.org.jetbrains.gradle.plugin.idea-ext:gradle-idea-ext", version.ref = "ideaExt" }
Expand Down
16 changes: 6 additions & 10 deletions subprojects/gradle-plugin/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -20,21 +20,18 @@ val accessWiden by sourceSets.creating {
val shadow by sourceSets.creating {
configurations.named(this.implementationConfigurationName) { extendsFrom(commonDeps) }
}
val transformer by sourceSets.creating {
configurations.named(this.implementationConfigurationName) { extendsFrom(commonDeps) }
}

configurations {
api { extendsFrom(commonDeps) }
"jarDecompileCompileClasspath" {
attributes {
attribute(TargetJvmVersion.TARGET_JVM_VERSION_ATTRIBUTE, 11) // VF needs 11
}
}
}

val accessWidenerVersion: String by project
val asmVersion: String by project
val checkerVersion: String by project
val vineFlowerVersion: String by project
val forgeAutoRenamingToolVersion: String by project
val junitVersion: String by project
val mergeToolVersion: String by project
dependencies {
Expand All @@ -43,10 +40,6 @@ dependencies {
commonDeps(libs.asm)
commonDeps(libs.asm.commons)
commonDeps(libs.asm.util)
commonDeps(libs.forgeAutoRenamingTool) {
exclude("org.ow2.asm") // Use our own ASM
exclude("net.sf.jopt-simple")
}
commonDeps(libs.mammoth)

// Just main
Expand Down Expand Up @@ -77,11 +70,14 @@ dependencies {
"accessWidenCompileOnly"(libs.accessWidener) {
exclude("org.ow2.asm")
}
"accessWidenCompileOnly"(transformer.output)
implementation(accessWiden.output)

"shadowCompileOnly"(libs.shadowPlugin)
implementation(shadow.output)

implementation(transformer.output)

testImplementation(platform(libs.junit.bom))
testImplementation(libs.junit.api)
testRuntimeOnly(libs.junit.launcher)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,33 +26,18 @@

import net.fabricmc.accesswidener.AccessWidener;
import net.fabricmc.accesswidener.AccessWidenerClassVisitor;
import net.fabricmc.accesswidener.AccessWidenerVisitor;
import net.minecraftforge.fart.api.Transformer;
import org.objectweb.asm.ClassReader;
import org.objectweb.asm.ClassVisitor;
import org.objectweb.asm.ClassWriter;
import org.objectweb.asm.Opcodes;
import org.spongepowered.gradle.vanilla.internal.transformer.ClassTransformer;

final class AccessWidenerEntryTransformer implements Transformer {
final class AccessWidenerEntryTransformer implements ClassTransformer {
private final AccessWidener widener;

public AccessWidenerEntryTransformer(final AccessWidener widener) {
this.widener = widener;
}

@Override
public ClassEntry process(final ClassEntry entry) {
// Because InnerClass attributes can be present in any class AW'd classes
// are referenced from, we have to target every class to get a correct output.
final ClassReader reader = new ClassReader(entry.getData());
final ClassWriter writer = new ClassWriter(reader, 0);
// TODO: Expose the ASM version constant somewhere visible to this worker
final ClassVisitor visitor = AccessWidenerClassVisitor.createClassVisitor(Opcodes.ASM9, writer, this.widener);
reader.accept(visitor, 0);
if (entry.isMultiRelease()) {
return ClassEntry.create(entry.getName(), entry.getTime(), writer.toByteArray(), entry.getVersion());
} else {
return ClassEntry.create(entry.getName(), entry.getTime(), writer.toByteArray());
}
public ClassVisitor apply(final ClassVisitor parent) {
return AccessWidenerClassVisitor.createClassVisitor(ClassTransformer.ASM_VERSION, parent, this.widener);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,10 @@

import net.fabricmc.accesswidener.AccessWidener;
import net.fabricmc.accesswidener.AccessWidenerReader;
import net.minecraftforge.fart.api.Transformer;
import org.gradle.api.GradleException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.spongepowered.gradle.vanilla.internal.transformer.ClassTransformer;

import java.io.BufferedReader;
import java.io.IOException;
Expand All @@ -39,12 +39,12 @@
import java.util.Set;
import java.util.function.Function;

public final class AccessWidenerTransformerProvider implements Function<Set<Path>, Transformer> {
public final class AccessWidenerTransformerProvider implements Function<Set<Path>, ClassTransformer> {

private static final Logger LOGGER = LoggerFactory.getLogger(AccessWidenerTransformerProvider.class);

@Override
public Transformer apply(final Set<Path> paths) {
public ClassTransformer apply(final Set<Path> paths) {
final AccessWidener widener = new AccessWidener();
final AccessWidenerReader reader = new AccessWidenerReader(widener);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@ public final class Constants {
public static final String USER_AGENT = String.format("%s/%s Gradle/%s", Constants.NAME, Constants.VERSION, GradleVersion.current().getVersion());
public static final String MINECRAFT_RESOURCES_HOST = "resources.download.minecraft.net";
public static final String TASK_GROUP = "vanilla gradle";
public static final int ASM_VERSION = Opcodes.ASM9;
public static final String FIRST_TARGETABLE_RELEASE_TIMESTAMP = "2019-09-04T11:19:34+00:00"; // 19w36a+
public static final String OUT_OF_BAND_RELEASE = "1.14.4"; // Cause it is special
public static final String INDENT = " "; // indent to use when writing files
Expand Down

This file was deleted.

This file was deleted.

Loading