mirror of
https://github.com/architectury/architectury-loom.git
synced 2026-04-03 05:57:42 -05:00
Select jar configuration based on which sides are present (#1182)
* auto select jar configuration based on which sides are present * move logic into jar configuration property convention
This commit is contained in:
@@ -41,6 +41,7 @@ import net.fabricmc.loom.configuration.LoomDependencyManager;
|
||||
import net.fabricmc.loom.configuration.accesswidener.AccessWidenerFile;
|
||||
import net.fabricmc.loom.configuration.providers.mappings.LayeredMappingsFactory;
|
||||
import net.fabricmc.loom.configuration.providers.mappings.MappingConfiguration;
|
||||
import net.fabricmc.loom.configuration.providers.minecraft.MinecraftMetadataProvider;
|
||||
import net.fabricmc.loom.configuration.providers.minecraft.MinecraftProvider;
|
||||
import net.fabricmc.loom.configuration.providers.minecraft.library.LibraryProcessorManager;
|
||||
import net.fabricmc.loom.configuration.providers.minecraft.mapped.IntermediaryMinecraftProvider;
|
||||
@@ -68,6 +69,10 @@ public interface LoomGradleExtension extends LoomGradleExtensionAPI {
|
||||
|
||||
LoomDependencyManager getDependencyManager();
|
||||
|
||||
MinecraftMetadataProvider getMetadataProvider();
|
||||
|
||||
void setMetadataProvider(MinecraftMetadataProvider metadataProvider);
|
||||
|
||||
MinecraftProvider getMinecraftProvider();
|
||||
|
||||
void setMinecraftProvider(MinecraftProvider minecraftProvider);
|
||||
|
||||
@@ -60,7 +60,6 @@ import net.fabricmc.loom.configuration.processors.MinecraftJarProcessorManager;
|
||||
import net.fabricmc.loom.configuration.processors.ModJavadocProcessor;
|
||||
import net.fabricmc.loom.configuration.providers.mappings.LayeredMappingsFactory;
|
||||
import net.fabricmc.loom.configuration.providers.mappings.MappingConfiguration;
|
||||
import net.fabricmc.loom.configuration.providers.minecraft.MinecraftJarConfiguration;
|
||||
import net.fabricmc.loom.configuration.providers.minecraft.MinecraftMetadataProvider;
|
||||
import net.fabricmc.loom.configuration.providers.minecraft.MinecraftProvider;
|
||||
import net.fabricmc.loom.configuration.providers.minecraft.MinecraftSourceSets;
|
||||
@@ -69,7 +68,6 @@ import net.fabricmc.loom.configuration.providers.minecraft.mapped.IntermediaryMi
|
||||
import net.fabricmc.loom.configuration.providers.minecraft.mapped.NamedMinecraftProvider;
|
||||
import net.fabricmc.loom.extension.MixinExtension;
|
||||
import net.fabricmc.loom.util.Checksum;
|
||||
import net.fabricmc.loom.util.Constants;
|
||||
import net.fabricmc.loom.util.ExceptionUtil;
|
||||
import net.fabricmc.loom.util.ProcessUtil;
|
||||
import net.fabricmc.loom.util.gradle.GradleUtils;
|
||||
@@ -154,13 +152,10 @@ public abstract class CompileConfiguration implements Runnable {
|
||||
final LoomGradleExtension extension = configContext.extension();
|
||||
|
||||
final MinecraftMetadataProvider metadataProvider = MinecraftMetadataProvider.create(configContext);
|
||||
extension.setMetadataProvider(metadataProvider);
|
||||
|
||||
var jarConfiguration = extension.getMinecraftJarConfiguration().get();
|
||||
|
||||
if (jarConfiguration == MinecraftJarConfiguration.MERGED && !metadataProvider.getVersionMeta().isVersionOrNewer(Constants.RELEASE_TIME_1_3)) {
|
||||
jarConfiguration = MinecraftJarConfiguration.LEGACY_MERGED;
|
||||
}
|
||||
|
||||
// Provide the vanilla mc jars
|
||||
final MinecraftProvider minecraftProvider = jarConfiguration.createMinecraftProvider(metadataProvider, configContext);
|
||||
extension.setMinecraftProvider(minecraftProvider);
|
||||
|
||||
@@ -68,8 +68,10 @@ import net.fabricmc.loom.configuration.providers.mappings.LayeredMappingSpecBuil
|
||||
import net.fabricmc.loom.configuration.providers.mappings.LayeredMappingsFactory;
|
||||
import net.fabricmc.loom.configuration.providers.minecraft.ManifestLocations;
|
||||
import net.fabricmc.loom.configuration.providers.minecraft.MinecraftJarConfiguration;
|
||||
import net.fabricmc.loom.configuration.providers.minecraft.MinecraftMetadataProvider;
|
||||
import net.fabricmc.loom.configuration.providers.minecraft.MinecraftSourceSets;
|
||||
import net.fabricmc.loom.task.GenerateSourcesTask;
|
||||
import net.fabricmc.loom.util.Constants;
|
||||
import net.fabricmc.loom.util.DeprecationHelper;
|
||||
import net.fabricmc.loom.util.MirrorUtil;
|
||||
import net.fabricmc.loom.util.fmj.FabricModJson;
|
||||
@@ -151,7 +153,23 @@ public abstract class LoomGradleExtensionApiImpl implements LoomGradleExtensionA
|
||||
this.minecraftJarProcessors.finalizeValueOnRead();
|
||||
|
||||
//noinspection unchecked
|
||||
this.minecraftJarConfiguration = project.getObjects().property((Class<MinecraftJarConfiguration<?, ?, ?>>) (Class<?>) MinecraftJarConfiguration.class).convention(MinecraftJarConfiguration.MERGED);
|
||||
this.minecraftJarConfiguration = project.getObjects().property((Class<MinecraftJarConfiguration<?, ?, ?>>) (Class<?>) MinecraftJarConfiguration.class)
|
||||
.convention(project.provider(() -> {
|
||||
final LoomGradleExtension extension = LoomGradleExtension.get(project);
|
||||
final MinecraftMetadataProvider metadataProvider = extension.getMetadataProvider();
|
||||
|
||||
// if no configuration is selected by the user, attempt to select one
|
||||
// based on the mc version and which sides are present for it
|
||||
if (!metadataProvider.getVersionMeta().downloads().containsKey("server")) {
|
||||
return MinecraftJarConfiguration.CLIENT_ONLY;
|
||||
} else if (!metadataProvider.getVersionMeta().downloads().containsKey("client")) {
|
||||
return MinecraftJarConfiguration.SERVER_ONLY;
|
||||
} else if (metadataProvider.getVersionMeta().isVersionOrNewer(Constants.RELEASE_TIME_1_3)) {
|
||||
return MinecraftJarConfiguration.MERGED;
|
||||
} else {
|
||||
return MinecraftJarConfiguration.LEGACY_MERGED;
|
||||
}
|
||||
}));
|
||||
this.minecraftJarConfiguration.finalizeValueOnRead();
|
||||
|
||||
this.accessWidener.finalizeValueOnRead();
|
||||
|
||||
@@ -50,6 +50,7 @@ import net.fabricmc.loom.configuration.providers.mappings.IntermediaryMappingsPr
|
||||
import net.fabricmc.loom.configuration.providers.mappings.LayeredMappingsFactory;
|
||||
import net.fabricmc.loom.configuration.providers.mappings.MappingConfiguration;
|
||||
import net.fabricmc.loom.configuration.providers.mappings.NoOpIntermediateMappingsProvider;
|
||||
import net.fabricmc.loom.configuration.providers.minecraft.MinecraftMetadataProvider;
|
||||
import net.fabricmc.loom.configuration.providers.minecraft.MinecraftProvider;
|
||||
import net.fabricmc.loom.configuration.providers.minecraft.library.LibraryProcessorManager;
|
||||
import net.fabricmc.loom.configuration.providers.minecraft.mapped.IntermediaryMinecraftProvider;
|
||||
@@ -66,6 +67,7 @@ public abstract class LoomGradleExtensionImpl extends LoomGradleExtensionApiImpl
|
||||
private final List<AccessWidenerFile> transitiveAccessWideners = new ArrayList<>();
|
||||
|
||||
private LoomDependencyManager dependencyManager;
|
||||
private MinecraftMetadataProvider metadataProvider;
|
||||
private MinecraftProvider minecraftProvider;
|
||||
private MappingConfiguration mappingConfiguration;
|
||||
private NamedMinecraftProvider<?> namedMinecraftProvider;
|
||||
@@ -130,6 +132,16 @@ public abstract class LoomGradleExtensionImpl extends LoomGradleExtensionApiImpl
|
||||
return Objects.requireNonNull(dependencyManager, "Cannot get LoomDependencyManager before it has been setup");
|
||||
}
|
||||
|
||||
@Override
|
||||
public MinecraftMetadataProvider getMetadataProvider() {
|
||||
return Objects.requireNonNull(metadataProvider, "Cannot get MinecraftMetadataProvider before it has been setup");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setMetadataProvider(MinecraftMetadataProvider metadataProvider) {
|
||||
this.metadataProvider = metadataProvider;
|
||||
}
|
||||
|
||||
@Override
|
||||
public MinecraftProvider getMinecraftProvider() {
|
||||
return Objects.requireNonNull(minecraftProvider, "Cannot get MinecraftProvider before it has been setup");
|
||||
|
||||
Reference in New Issue
Block a user