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