Split mod dependencies into client/common as required.

This commit is contained in:
modmuss50
2022-08-04 08:56:37 +01:00
committed by GitHub
parent 3913c2e897
commit e561cca19a
37 changed files with 1045 additions and 515 deletions

View File

@@ -76,11 +76,34 @@ public final class RemapConfigurations {
// Apply the client target names to the main configurations
for (ConfigurationOption option : getValidOptions(mainSourceSet)) {
configurations.getByName(option.name(mainSourceSet), settings -> {
settings.getClientTargetConfigurationName().convention(option.targetName(clientSourceSet));
String name = option.targetName(clientSourceSet);
if (name == null) {
return;
}
settings.getClientSourceConfigurationName().set(name);
createClientMappedConfiguration(project, settings, clientSourceSet);
});
}
}
private static void createClientMappedConfiguration(Project project, RemapConfigurationSettings settings, SourceSet clientSourceSet) {
final Configuration remappedConfiguration = project.getConfigurations().create(settings.getClientRemappedConfigurationName().get());
// Don't get transitive deps of already remapped mods
remappedConfiguration.setTransitive(false);
if (settings.getOnCompileClasspath().get()) {
extendsFrom(Constants.Configurations.MOD_COMPILE_CLASSPATH_MAPPED, remappedConfiguration, project);
extendsFrom(clientSourceSet.getCompileClasspathConfigurationName(), remappedConfiguration, project);
}
if (settings.getOnRuntimeClasspath().get()) {
extendsFrom(clientSourceSet.getRuntimeClasspathConfigurationName(), remappedConfiguration, project);
}
}
public static void applyToProject(Project project, RemapConfigurationSettings settings) {
// No point bothering to make it lazily, gradle realises configurations right away.
// <https://github.com/gradle/gradle/blob/v7.4.2/subprojects/plugins/src/main/java/org/gradle/api/plugins/BasePlugin.java#L104>