aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authormodmuss50 <modmuss50@gmail.com>2021-10-25 16:34:06 +0100
committermodmuss50 <modmuss50@gmail.com>2021-10-25 16:34:06 +0100
commit13f4b29d124945e96754af7fca82f12463047fb1 (patch)
tree08386a7676fb89e2ddcd1b589193ec1cb9ab0a7b /src/main/java
parent640deecd96ee892bc0c1cfb73d81ff662cf80f0d (diff)
downloadarchitectury-loom-13f4b29d124945e96754af7fca82f12463047fb1.tar.gz
architectury-loom-13f4b29d124945e96754af7fca82f12463047fb1.tar.bz2
architectury-loom-13f4b29d124945e96754af7fca82f12463047fb1.zip
Alter TransitiveAccessWidenerJarProcessor to use the same logic used in ModCompileRemapper for resolving mod jars.
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/accesswidener/TransitiveAccessWidenerJarProcessor.java44
1 files changed, 31 insertions, 13 deletions
diff --git a/src/main/java/net/fabricmc/loom/configuration/accesswidener/TransitiveAccessWidenerJarProcessor.java b/src/main/java/net/fabricmc/loom/configuration/accesswidener/TransitiveAccessWidenerJarProcessor.java
index 8ae99383..77156a48 100644
--- a/src/main/java/net/fabricmc/loom/configuration/accesswidener/TransitiveAccessWidenerJarProcessor.java
+++ b/src/main/java/net/fabricmc/loom/configuration/accesswidener/TransitiveAccessWidenerJarProcessor.java
@@ -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());
+ // Based off the logic in ModCompileRemapper.
+ for (ResolvedArtifact artifact : configuration.getResolvedConfiguration().getResolvedArtifacts()) {
+ possibleModJars.add(artifact.getFile().toPath());
+ }
- if (accessWidener == null) {
- continue;
- }
+ for (FileCollectionDependency dependency : configuration.getAllDependencies().withType(FileCollectionDependency.class)) {
+ FileCollection files = dependency.getFiles();
- if (!TransitiveDetectorVisitor.isTransitive(accessWidener.content())) {
- // AW does not contain anything transitive, skip over it
- continue;
+ for (File artifact : files) {
+ possibleModJars.add(artifact.toPath());
}
+ }
+ }
+
+ for (Path path : possibleModJars) {
+ AccessWidenerFile accessWidener = AccessWidenerFile.fromModJar(path);
- accessWideners.add(accessWidener);
+ if (accessWidener == null) {
+ continue;
}
+
+ if (!TransitiveDetectorVisitor.isTransitive(accessWidener.content())) {
+ // AW does not contain anything transitive, skip over it
+ continue;
+ }
+
+ accessWideners.add(accessWidener);
}
return accessWideners;