aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/mods/ModProcessor.java28
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/providers/mappings/LayeredMappingsDependency.java16
-rw-r--r--src/main/java/net/fabricmc/loom/extension/LoomGradleExtensionApiImpl.java2
3 files changed, 29 insertions, 17 deletions
diff --git a/src/main/java/net/fabricmc/loom/configuration/mods/ModProcessor.java b/src/main/java/net/fabricmc/loom/configuration/mods/ModProcessor.java
index 7e155ff4..8e0c28c5 100644
--- a/src/main/java/net/fabricmc/loom/configuration/mods/ModProcessor.java
+++ b/src/main/java/net/fabricmc/loom/configuration/mods/ModProcessor.java
@@ -28,6 +28,7 @@ import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.HashMap;
@@ -190,23 +191,24 @@ public class ModProcessor {
// Apply this in a second loop as we need to ensure all the inputs are on the classpath before remapping.
for (ModDependencyInfo info : remapList) {
- OutputConsumerPath outputConsumer;
-
try {
- outputConsumer = new OutputConsumerPath.Builder(info.getRemappedOutput().toPath()).build();
- } catch (Exception e) {
- throw new IOException("Could not create output consumer for " + info.getRemappedOutput().getAbsolutePath());
- }
+ OutputConsumerPath outputConsumer = new OutputConsumerPath.Builder(info.getRemappedOutput().toPath()).build();
- outputConsumer.addNonClassFiles(info.getInputFile().toPath());
- outputConsumerMap.put(info, outputConsumer);
- String accessWidener = info.getAccessWidener();
+ outputConsumer.addNonClassFiles(info.getInputFile().toPath());
+ outputConsumerMap.put(info, outputConsumer);
+ String accessWidener = info.getAccessWidener();
- if (accessWidener != null) {
- accessWidenerMap.put(info, remapAccessWidener(ZipUtil.unpackEntry(info.inputFile, accessWidener), remapper.getRemapper()));
- }
+ if (accessWidener != null) {
+ accessWidenerMap.put(info, remapAccessWidener(ZipUtil.unpackEntry(info.inputFile, accessWidener), remapper.getRemapper()));
+ }
+
+ remapper.apply(outputConsumer, tagMap.get(info));
+ } catch (Exception e) {
+ remapper.finish();
+ Files.deleteIfExists(info.getRemappedOutput().toPath());
- remapper.apply(outputConsumer, tagMap.get(info));
+ throw new RuntimeException("Failed to remap: " + info.getRemappedNotation(), e);
+ }
}
remapper.finish();
diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/mappings/LayeredMappingsDependency.java b/src/main/java/net/fabricmc/loom/configuration/providers/mappings/LayeredMappingsDependency.java
index 21f1d2fd..fc0d3adc 100644
--- a/src/main/java/net/fabricmc/loom/configuration/providers/mappings/LayeredMappingsDependency.java
+++ b/src/main/java/net/fabricmc/loom/configuration/providers/mappings/LayeredMappingsDependency.java
@@ -38,18 +38,21 @@ import java.util.Objects;
import java.util.Set;
import org.gradle.api.Action;
+import org.gradle.api.Project;
import org.gradle.api.artifacts.Dependency;
import org.gradle.api.artifacts.ExternalDependency;
import org.gradle.api.artifacts.ExternalModuleDependency;
import org.gradle.api.artifacts.ModuleIdentifier;
import org.gradle.api.artifacts.ModuleVersionIdentifier;
import org.gradle.api.artifacts.MutableVersionConstraint;
+import org.gradle.api.artifacts.FileCollectionDependency;
import org.gradle.api.artifacts.SelfResolvingDependency;
import org.gradle.api.artifacts.VersionConstraint;
import org.gradle.api.internal.artifacts.DefaultModuleIdentifier;
import org.gradle.api.internal.artifacts.ModuleVersionSelectorStrictSpec;
import org.gradle.api.internal.artifacts.dependencies.AbstractModuleDependency;
import org.gradle.api.internal.artifacts.dependencies.DefaultMutableVersionConstraint;
+import org.gradle.api.file.FileCollection;
import org.gradle.api.tasks.TaskDependency;
import org.zeroturnaround.zip.ByteSource;
import org.zeroturnaround.zip.ZipEntrySource;
@@ -64,16 +67,18 @@ import net.fabricmc.mappingio.adapter.MappingSourceNsSwitch;
import net.fabricmc.mappingio.format.Tiny2Writer;
import net.fabricmc.mappingio.tree.MemoryMappingTree;
-public class LayeredMappingsDependency extends AbstractModuleDependency implements SelfResolvingDependency, ExternalModuleDependency {
+public class LayeredMappingsDependency extends AbstractModuleDependency implements SelfResolvingDependency, ExternalModuleDependency, FileCollectionDependency {
private static final String GROUP = "loom";
private static final String MODULE = "mappings";
+ private final Project project;
private final MappingContext mappingContext;
private final LayeredMappingSpec layeredMappingSpec;
private final String version;
- public LayeredMappingsDependency(MappingContext mappingContext, LayeredMappingSpec layeredMappingSpec, String version) {
+ public LayeredMappingsDependency(Project project, MappingContext mappingContext, LayeredMappingSpec layeredMappingSpec, String version) {
super(null);
+ this.project = project;
this.mappingContext = mappingContext;
this.layeredMappingSpec = layeredMappingSpec;
this.version = version;
@@ -203,7 +208,7 @@ public class LayeredMappingsDependency extends AbstractModuleDependency implemen
@Override
public ExternalModuleDependency copy() {
- return new LayeredMappingsDependency(mappingContext, layeredMappingSpec, version);
+ return new LayeredMappingsDependency(project, mappingContext, layeredMappingSpec, version);
}
@Override
@@ -218,4 +223,9 @@ public class LayeredMappingsDependency extends AbstractModuleDependency implemen
@Override
public void because(String s) {
}
+
+ @Override
+ public FileCollection getFiles() {
+ return project.files(resolve());
+ }
}
diff --git a/src/main/java/net/fabricmc/loom/extension/LoomGradleExtensionApiImpl.java b/src/main/java/net/fabricmc/loom/extension/LoomGradleExtensionApiImpl.java
index 2d31712d..66ddeb0b 100644
--- a/src/main/java/net/fabricmc/loom/extension/LoomGradleExtensionApiImpl.java
+++ b/src/main/java/net/fabricmc/loom/extension/LoomGradleExtensionApiImpl.java
@@ -165,7 +165,7 @@ public abstract class LoomGradleExtensionApiImpl implements LoomGradleExtensionA
LayeredMappingSpecBuilderImpl builder = new LayeredMappingSpecBuilderImpl(this);
action.execute(builder);
LayeredMappingSpec builtSpec = builder.build();
- return new LayeredMappingsDependency(new GradleMappingContext(getProject(), builtSpec.getVersion().replace("+", "_").replace(".", "_")), builtSpec, builtSpec.getVersion());
+ return new LayeredMappingsDependency(getProject(), new GradleMappingContext(getProject(), builtSpec.getVersion().replace("+", "_").replace(".", "_")), builtSpec, builtSpec.getVersion());
}
protected abstract String getMinecraftVersion();