Add RemapConfigurationSettings.getApplyDependencyTransforms to close #797 (#799)

This commit is contained in:
modmuss50
2023-01-16 18:19:48 +00:00
committed by GitHub
parent 7586911af8
commit 2b9072f37d
2 changed files with 12 additions and 0 deletions

View File

@@ -60,6 +60,7 @@ public abstract class RemapConfigurationSettings implements Named {
getOnCompileClasspath().finalizeValueOnRead();
getOnRuntimeClasspath().finalizeValueOnRead();
getPublishingMode().convention(PublishingMode.NONE).finalizeValueOnRead();
getApplyDependencyTransforms().convention(defaultDependencyTransforms()).finalizeValueOnRead();
}
@Override
@@ -100,6 +101,11 @@ public abstract class RemapConfigurationSettings implements Named {
*/
public abstract Property<PublishingMode> getPublishingMode();
/**
* @return true when dependencies should be evaluated for minecraft jar transforms such as transitive Access Wideners or Injected interfaces.
*/
public abstract Property<Boolean> getApplyDependencyTransforms();
public enum PublishingMode {
NONE,
COMPILE_ONLY(JavaPlugin.API_ELEMENTS_CONFIGURATION_NAME),
@@ -174,4 +180,8 @@ public abstract class RemapConfigurationSettings implements Named {
private NamedDomainObjectProvider<Configuration> getConfigurationByName(String name) {
return getProject().getConfigurations().named(name);
}
private Provider<Boolean> defaultDependencyTransforms() {
return getSourceSet().map(sourceSet -> sourceSet.getName().equals(SourceSet.MAIN_SOURCE_SET_NAME) || sourceSet.getName().equals("client"));
}
}

View File

@@ -113,10 +113,12 @@ public record SpecContextImpl(List<FabricModJson> modDependencies, List<FabricMo
.map(File::toPath);
final List<Path> runtimeEntries = extension.getRuntimeRemapConfigurations().stream()
.filter(settings -> settings.getApplyDependencyTransforms().get())
.flatMap(resolve)
.toList();
return extension.getCompileRemapConfigurations().stream()
.filter(settings -> settings.getApplyDependencyTransforms().get())
.flatMap(resolve)
.filter(runtimeEntries::contains) // Use the intersection of the two configurations.
.map(FabricModJsonFactory::createFromZipOptional)