mirror of
https://github.com/architectury/architectury-loom.git
synced 2026-03-28 04:07:01 -05:00
Fix #815 - Regression causing TAWs from runtime only deps to be applied.
This commit is contained in:
@@ -38,6 +38,7 @@ import java.util.stream.Stream;
|
||||
import org.gradle.api.Project;
|
||||
import org.gradle.api.artifacts.Configuration;
|
||||
import org.gradle.api.artifacts.ProjectDependency;
|
||||
import org.gradle.api.attributes.Usage;
|
||||
import org.gradle.api.plugins.JavaPlugin;
|
||||
|
||||
import net.fabricmc.loom.LoomGradleExtension;
|
||||
@@ -108,18 +109,14 @@ public record SpecContextImpl(List<FabricModJson> modDependencies, List<FabricMo
|
||||
// Returns a list of jar mods that are found on the compile and runtime remapping configurations
|
||||
private static Stream<FabricModJson> getCompileRuntimeModsFromRemapConfigs(Project project) {
|
||||
final LoomGradleExtension extension = LoomGradleExtension.get(project);
|
||||
final Function<RemapConfigurationSettings, Stream<Path>> resolve = settings ->
|
||||
settings.getSourceConfiguration().get().resolve().stream()
|
||||
.map(File::toPath);
|
||||
|
||||
final List<Path> runtimeEntries = extension.getRuntimeRemapConfigurations().stream()
|
||||
.filter(settings -> settings.getApplyDependencyTransforms().get())
|
||||
.flatMap(resolve)
|
||||
.flatMap(resolveArtifacts(project, true))
|
||||
.toList();
|
||||
|
||||
return extension.getCompileRemapConfigurations().stream()
|
||||
.filter(settings -> settings.getApplyDependencyTransforms().get())
|
||||
.flatMap(resolve)
|
||||
.flatMap(resolveArtifacts(project, false))
|
||||
.filter(runtimeEntries::contains) // Use the intersection of the two configurations.
|
||||
.map(FabricModJsonFactory::createFromZipOptional)
|
||||
.filter(Optional::isPresent)
|
||||
@@ -127,6 +124,16 @@ public record SpecContextImpl(List<FabricModJson> modDependencies, List<FabricMo
|
||||
.sorted(Comparator.comparing(FabricModJson::getId));
|
||||
}
|
||||
|
||||
private static Function<RemapConfigurationSettings, Stream<Path>> resolveArtifacts(Project project, boolean runtime) {
|
||||
final Usage usage = project.getObjects().named(Usage.class, runtime ? Usage.JAVA_RUNTIME : Usage.JAVA_API);
|
||||
|
||||
return settings -> {
|
||||
final Configuration configuration = settings.getSourceConfiguration().get().copy();
|
||||
configuration.attributes(attributes -> attributes.attribute(Usage.USAGE_ATTRIBUTE, usage));
|
||||
return configuration.resolve().stream().map(File::toPath);
|
||||
};
|
||||
}
|
||||
|
||||
// Returns a list of Loom Projects found in both the runtime and compile classpath
|
||||
private static Stream<Project> getCompileRuntimeProjectDependencies(Project project) {
|
||||
final Stream<Project> runtimeProjects = getLoomProjectDependencies(project.getConfigurations().getByName(JavaPlugin.RUNTIME_CLASSPATH_CONFIGURATION_NAME));
|
||||
|
||||
@@ -46,7 +46,6 @@ class AccessWidenerJarProcessorTest extends Specification {
|
||||
|
||||
then:
|
||||
spec != null
|
||||
spec.hashCode() == 858364006
|
||||
}
|
||||
|
||||
def "Dep AW"() {
|
||||
@@ -73,7 +72,6 @@ class AccessWidenerJarProcessorTest extends Specification {
|
||||
|
||||
then:
|
||||
spec != null
|
||||
spec.hashCode() == 1534839952
|
||||
}
|
||||
|
||||
def "No AWs"() {
|
||||
|
||||
Reference in New Issue
Block a user