mirror of
https://github.com/architectury/architectury-loom.git
synced 2026-03-30 21:05:58 -05:00
Merge remote-tracking branch 'FabricMC/exp/1.6' into exp/1.6
# Conflicts: # gradle/libs.versions.toml # src/main/java/net/fabricmc/loom/LoomGradleExtension.java # src/main/java/net/fabricmc/loom/api/LoomGradleExtensionAPI.java # src/main/java/net/fabricmc/loom/build/nesting/IncludedJarFactory.java # src/main/java/net/fabricmc/loom/configuration/CompileConfiguration.java # src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MergedMinecraftProvider.java # src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftJarConfiguration.java # src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftProvider.java # src/main/java/net/fabricmc/loom/configuration/providers/minecraft/SingleJarMinecraftProvider.java # src/main/java/net/fabricmc/loom/extension/LoomFiles.java # src/main/java/net/fabricmc/loom/extension/LoomFilesBaseImpl.java # src/main/java/net/fabricmc/loom/extension/LoomGradleExtensionApiImpl.java # src/main/java/net/fabricmc/loom/extension/LoomGradleExtensionImpl.java # src/main/java/net/fabricmc/loom/task/GenerateSourcesTask.java # src/main/java/net/fabricmc/loom/task/RemapJarTask.java # src/main/java/net/fabricmc/loom/util/fmj/FabricModJsonFactory.java
This commit is contained in:
@@ -86,6 +86,7 @@ import net.fabricmc.loom.util.SidedClassVisitor;
|
||||
import net.fabricmc.loom.util.ZipUtils;
|
||||
import net.fabricmc.loom.util.fmj.FabricModJson;
|
||||
import net.fabricmc.loom.util.fmj.FabricModJsonFactory;
|
||||
import net.fabricmc.loom.util.fmj.FabricModJsonUtils;
|
||||
import net.fabricmc.loom.util.service.BuildSharedServiceManager;
|
||||
import net.fabricmc.loom.util.service.UnsafeWorkQueueHelper;
|
||||
import net.fabricmc.tinyremapper.OutputConsumerPath;
|
||||
@@ -101,6 +102,14 @@ public abstract class RemapJarTask extends AbstractRemapJarTask {
|
||||
@Input
|
||||
public abstract Property<Boolean> getAddNestedDependencies();
|
||||
|
||||
/**
|
||||
* Whether to optimize the fabric.mod.json file, by default this is false.
|
||||
*
|
||||
* <p>The schemaVersion entry will be placed first in the json file
|
||||
*/
|
||||
@Input
|
||||
public abstract Property<Boolean> getOptimizeFabricModJson();
|
||||
|
||||
/**
|
||||
* Gets the jar paths to the access wideners that will be converted to ATs for Forge runtime.
|
||||
* If you specify multiple files, they will be merged into one.
|
||||
@@ -145,6 +154,7 @@ public abstract class RemapJarTask extends AbstractRemapJarTask {
|
||||
final ConfigurationContainer configurations = getProject().getConfigurations();
|
||||
getClasspath().from(configurations.getByName(JavaPlugin.COMPILE_CLASSPATH_CONFIGURATION_NAME));
|
||||
getAddNestedDependencies().convention(true).finalizeValueOnRead();
|
||||
getOptimizeFabricModJson().convention(false).finalizeValueOnRead();
|
||||
getReadMixinConfigsFromManifest().convention(LoomGradleExtension.get(getProject()).isForgeLike()).finalizeValueOnRead();
|
||||
getInjectAccessWidener().convention(false);
|
||||
|
||||
@@ -236,6 +246,8 @@ public abstract class RemapJarTask extends AbstractRemapJarTask {
|
||||
if (!getAtAccessWideners().get().isEmpty()) {
|
||||
params.getMappingBuildServiceUuid().set(UnsafeWorkQueueHelper.create(MappingsService.createDefault(getProject(), serviceManagerProvider.get().get(), getSourceNamespace().get(), getTargetNamespace().get())));
|
||||
}
|
||||
|
||||
params.getOptimizeFmj().set(getOptimizeFabricModJson().get());
|
||||
});
|
||||
}
|
||||
|
||||
@@ -293,6 +305,7 @@ public abstract class RemapJarTask extends AbstractRemapJarTask {
|
||||
|
||||
Property<Boolean> getUseMixinExtension();
|
||||
Property<Boolean> getMultiProjectOptimisation();
|
||||
Property<Boolean> getOptimizeFmj();
|
||||
|
||||
record RefmapData(List<String> mixinConfigs, String refmapName) implements Serializable { }
|
||||
ListProperty<RefmapData> getMixinData();
|
||||
@@ -348,6 +361,10 @@ public abstract class RemapJarTask extends AbstractRemapJarTask {
|
||||
|
||||
rewriteJar();
|
||||
|
||||
if (getParameters().getOptimizeFmj().get()) {
|
||||
optimizeFMJ();
|
||||
}
|
||||
|
||||
if (tinyRemapperService != null && !getParameters().getMultiProjectOptimisation().get()) {
|
||||
tinyRemapperService.close();
|
||||
}
|
||||
@@ -482,6 +499,14 @@ public abstract class RemapJarTask extends AbstractRemapJarTask {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void optimizeFMJ() throws IOException {
|
||||
if (!ZipUtils.contains(outputFile, FabricModJsonFactory.FABRIC_MOD_JSON)) {
|
||||
return;
|
||||
}
|
||||
|
||||
ZipUtils.transformJson(JsonObject.class, outputFile, FabricModJsonFactory.FABRIC_MOD_JSON, FabricModJsonUtils::optimizeFmj);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user