Alter TransitiveAccessWidenerJarProcessor to use the same logic used in ModCompileRemapper for resolving mod jars.
parent
640deecd96
commit
13f4b29d12
|
@ -26,12 +26,18 @@ package net.fabricmc.loom.configuration.accesswidener;
|
|||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Path;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import com.google.common.base.Preconditions;
|
||||
import org.gradle.api.Project;
|
||||
import org.gradle.api.artifacts.Configuration;
|
||||
import org.gradle.api.artifacts.FileCollectionDependency;
|
||||
import org.gradle.api.artifacts.ResolvedArtifact;
|
||||
import org.gradle.api.file.FileCollection;
|
||||
|
||||
import net.fabricmc.accesswidener.AccessWidener;
|
||||
import net.fabricmc.accesswidener.AccessWidenerReader;
|
||||
|
@ -80,7 +86,8 @@ public class TransitiveAccessWidenerJarProcessor implements JarProcessor {
|
|||
}
|
||||
|
||||
private List<AccessWidenerFile> getTransitiveAccessWideners() {
|
||||
List<AccessWidenerFile> accessWideners = new ArrayList<>();
|
||||
final List<AccessWidenerFile> accessWideners = new ArrayList<>();
|
||||
final Set<Path> possibleModJars = new HashSet<>();
|
||||
|
||||
for (RemappedConfigurationEntry entry : Constants.MOD_COMPILE_ENTRIES) {
|
||||
// Only apply global AWs from mods that are part of the compile classpath
|
||||
|
@ -88,24 +95,35 @@ public class TransitiveAccessWidenerJarProcessor implements JarProcessor {
|
|||
continue;
|
||||
}
|
||||
|
||||
Set<File> artifacts = extension.getLazyConfigurationProvider(entry.sourceConfiguration())
|
||||
.get()
|
||||
.resolve();
|
||||
final Configuration configuration = extension.getLazyConfigurationProvider(entry.sourceConfiguration()).get();
|
||||
|
||||
for (File artifact : artifacts) {
|
||||
AccessWidenerFile accessWidener = AccessWidenerFile.fromModJar(artifact.toPath());
|
||||
|
||||
if (accessWidener == null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!TransitiveDetectorVisitor.isTransitive(accessWidener.content())) {
|
||||
// AW does not contain anything transitive, skip over it
|
||||
continue;
|
||||
}
|
||||
|
||||
accessWideners.add(accessWidener);
|
||||
// Based off the logic in ModCompileRemapper.
|
||||
for (ResolvedArtifact artifact : configuration.getResolvedConfiguration().getResolvedArtifacts()) {
|
||||
possibleModJars.add(artifact.getFile().toPath());
|
||||
}
|
||||
|
||||
for (FileCollectionDependency dependency : configuration.getAllDependencies().withType(FileCollectionDependency.class)) {
|
||||
FileCollection files = dependency.getFiles();
|
||||
|
||||
for (File artifact : files) {
|
||||
possibleModJars.add(artifact.toPath());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (Path path : possibleModJars) {
|
||||
AccessWidenerFile accessWidener = AccessWidenerFile.fromModJar(path);
|
||||
|
||||
if (accessWidener == null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!TransitiveDetectorVisitor.isTransitive(accessWidener.content())) {
|
||||
// AW does not contain anything transitive, skip over it
|
||||
continue;
|
||||
}
|
||||
|
||||
accessWideners.add(accessWidener);
|
||||
}
|
||||
|
||||
return accessWideners;
|
||||
|
|
|
@ -28,7 +28,7 @@ import org.gradle.util.GradleVersion
|
|||
|
||||
class LoomTestConstants {
|
||||
public final static String DEFAULT_GRADLE = GradleVersion.current().getVersion()
|
||||
public final static String PRE_RELEASE_GRADLE = "7.4-20211011231946+0000"
|
||||
public final static String PRE_RELEASE_GRADLE = "7.4-20211023222429+0000"
|
||||
|
||||
public final static String[] STANDARD_TEST_VERSIONS = [DEFAULT_GRADLE, PRE_RELEASE_GRADLE]
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue