Give a proper working directory for GradleMappingContext

Signed-off-by: shedaniel <daniel@shedaniel.me>

(cherry picked from commit 5eafbbceeb)
Signed-off-by: shedaniel <daniel@shedaniel.me>
This commit is contained in:
shedaniel
2021-07-20 17:30:02 +08:00
parent ab351ee8c0
commit 49d05ad42d
2 changed files with 9 additions and 4 deletions

View File

@@ -74,6 +74,7 @@ import net.fabricmc.loom.configuration.providers.mappings.LayeredMappingSpec;
import net.fabricmc.loom.configuration.providers.mappings.LayeredMappingSpecBuilder;
import net.fabricmc.loom.configuration.providers.mappings.LayeredMappingsDependency;
import net.fabricmc.loom.configuration.providers.mappings.MappingsProviderImpl;
import net.fabricmc.loom.configuration.providers.minecraft.MinecraftVersionMeta;
import net.fabricmc.loom.util.ModPlatform;
import net.fabricmc.loom.util.function.LazyBool;
@@ -231,7 +232,10 @@ public class LoomGradleExtension {
LayeredMappingSpecBuilder builder = new LayeredMappingSpecBuilder(this);
action.execute(builder);
LayeredMappingSpec builtSpec = builder.build();
return new LayeredMappingsDependency(new GradleMappingContext(project, "layers_" + builtSpec.getVersion().replace("+", "_").replace(".", "_")), builtSpec, builtSpec.getVersion());
return new LayeredMappingsDependency(new GradleMappingContext(project, () -> {
MinecraftVersionMeta versionInfo = getMinecraftProvider().getVersionInfo();
return "layers/" + versionInfo.id() + "_" + builtSpec.getVersion().replace("+", "_").replace(".", "_");
}), builtSpec, builtSpec.getVersion());
}
public LoomGradleExtension(Project project) {

View File

@@ -25,6 +25,7 @@
package net.fabricmc.loom.configuration.providers.mappings;
import java.io.File;
import java.util.function.Supplier;
import org.gradle.api.Project;
import org.gradle.api.artifacts.Configuration;
@@ -36,9 +37,9 @@ import net.fabricmc.loom.configuration.providers.MinecraftProvider;
public class GradleMappingContext implements MappingContext {
private final Project project;
private final LoomGradleExtension extension;
private final String workingDirName;
private final Supplier<String> workingDirName;
public GradleMappingContext(Project project, String workingDirName) {
public GradleMappingContext(Project project, Supplier<String> workingDirName) {
this.project = project;
this.extension = project.getExtensions().getByType(LoomGradleExtension.class);
this.workingDirName = workingDirName;
@@ -62,7 +63,7 @@ public class GradleMappingContext implements MappingContext {
@Override
public File workingDirectory(String name) {
File tempDir = new File(mappingsProvider().getMappingsDir().toFile(), workingDirName);
File tempDir = new File(mappingsProvider().getMappingsDir().toFile(), workingDirName.get());
tempDir.mkdirs();
return new File(tempDir, name);
}