Use different cache files for custom manifest and metadata jsons (#1077)

* use different cache files for custom manifest and metadata jsons

* add properties for custom manifests to loom extension api

* expand manifests api with a priority queue

* add ApiStatus annotations where needed

* explain sort order in javadoc

* add getVersionMetaFileName function

* merge the two manifests locations together

* convert hash code to hex string

* fix metadata provider tests

* update priorities of built in manifests so they're first by default

* fix VersionsManifestAPI javadoc

* update comment in MinecraftMetadataProvider

* fix ManifestLocation.cacheFile

* deprecate and replace getCustomMinecraftManifest
This commit is contained in:
Space Walker
2024-05-04 19:18:26 +02:00
committed by GitHub
parent 63ebc35e1d
commit c5c52aba65
8 changed files with 257 additions and 64 deletions

View File

@@ -66,10 +66,12 @@ import net.fabricmc.loom.configuration.processors.JarProcessor;
import net.fabricmc.loom.configuration.providers.mappings.LayeredMappingSpec;
import net.fabricmc.loom.configuration.providers.mappings.LayeredMappingSpecBuilderImpl;
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.MinecraftSourceSets;
import net.fabricmc.loom.task.GenerateSourcesTask;
import net.fabricmc.loom.util.DeprecationHelper;
import net.fabricmc.loom.util.MirrorUtil;
import net.fabricmc.loom.util.fmj.FabricModJson;
import net.fabricmc.loom.util.fmj.FabricModJsonFactory;
import net.fabricmc.loom.util.gradle.SourceSetHelper;
@@ -83,7 +85,8 @@ public abstract class LoomGradleExtensionApiImpl implements LoomGradleExtensionA
protected final ListProperty<JarProcessor> jarProcessors;
protected final ConfigurableFileCollection log4jConfigs;
protected final RegularFileProperty accessWidener;
protected final Property<String> customManifest;
protected final ManifestLocations versionsManifests;
protected final Property<String> customMetadata;
protected final SetProperty<String> knownIndyBsms;
protected final Property<Boolean> transitiveAccessWideners;
protected final Property<Boolean> modProvidedJavadoc;
@@ -114,7 +117,10 @@ public abstract class LoomGradleExtensionApiImpl implements LoomGradleExtensionA
.empty();
this.log4jConfigs = project.files(directories.getDefaultLog4jConfigFile());
this.accessWidener = project.getObjects().fileProperty();
this.customManifest = project.getObjects().property(String.class);
this.versionsManifests = new ManifestLocations("versions_manifest");
this.versionsManifests.addBuiltIn(-2, MirrorUtil.getVersionManifests(project), "versions_manifest");
this.versionsManifests.addBuiltIn(-1, MirrorUtil.getExperimentalVersions(project), "experimental_versions_manifest");
this.customMetadata = project.getObjects().property(String.class);
this.knownIndyBsms = project.getObjects().setProperty(String.class).convention(Set.of(
"java/lang/invoke/StringConcatFactory",
"java/lang/runtime/ObjectMethods",
@@ -254,8 +260,13 @@ public abstract class LoomGradleExtensionApiImpl implements LoomGradleExtensionA
}
@Override
public Property<String> getCustomMinecraftManifest() {
return customManifest;
public ManifestLocations getVersionsManifests() {
return versionsManifests;
}
@Override
public Property<String> getCustomMinecraftMetadata() {
return customMetadata;
}
@Override