Skip to content

Commit 97a629e

Browse files
authored
File Structure Changes (FabricMC#462)
* File Structure changes * Fix checkstyle * Fix processed jars * Fix unpick tests * Resolve reviews * Fix merge conflicts
1 parent a0c2d87 commit 97a629e

22 files changed

+199
-191
lines changed

src/main/java/net/fabricmc/loom/LoomRepositoryPlugin.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -73,13 +73,13 @@ private void declareRepositories(RepositoryHandler repositories, LoomFiles files
7373

7474
repositories.ivy(repo -> {
7575
repo.setUrl(files.getUserCache());
76-
repo.patternLayout(layout -> layout.artifact("[revision]/[artifact]-[revision](-[classifier])(.[ext])"));
76+
repo.patternLayout(layout -> layout.artifact("[revision]/[artifact](-[classifier])(.[ext])"));
7777
repo.metadataSources(IvyArtifactRepository.MetadataSources::artifact);
7878
});
7979

8080
repositories.ivy(repo -> {
8181
repo.setUrl(files.getRootProjectPersistentCache());
82-
repo.patternLayout(layout -> layout.artifact("[revision]/[artifact]-[revision](-[classifier])(.[ext])"));
82+
repo.patternLayout(layout -> layout.artifact("[revision]/[artifact](-[classifier])(.[ext])"));
8383
repo.metadataSources(IvyArtifactRepository.MetadataSources::artifact);
8484
});
8585
}

src/main/java/net/fabricmc/loom/build/mixin/AnnotationProcessorInvoker.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ private void passMixinArguments(T task, SourceSet sourceSet) {
8282
LoomGradleExtension loom = LoomGradleExtension.get(project);
8383
String refmapName = Objects.requireNonNull(MixinApExtension.getMixinInformationContainer(sourceSet)).refmapNameProvider().get();
8484
Map<String, String> args = new HashMap<>() {{
85-
put(Constants.MixinArguments.IN_MAP_FILE_NAMED_INTERMEDIARY, loom.getMappingsProvider().tinyMappings.getCanonicalPath());
85+
put(Constants.MixinArguments.IN_MAP_FILE_NAMED_INTERMEDIARY, loom.getMappingsProvider().tinyMappings.toFile().getCanonicalPath());
8686
put(Constants.MixinArguments.OUT_MAP_FILE_NAMED_INTERMEDIARY, loom.getNextMixinMappings().getCanonicalPath());
8787
put(Constants.MixinArguments.OUT_REFMAP_FILE, getRefmapDestination(task, refmapName));
8888
put(Constants.MixinArguments.DEFAULT_OBFUSCATION_ENV, "named:intermediary");

src/main/java/net/fabricmc/loom/configuration/DependencyProvider.java

+5
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949

5050
import net.fabricmc.loom.LoomGradleExtension;
5151
import net.fabricmc.loom.LoomGradlePlugin;
52+
import net.fabricmc.loom.configuration.providers.MinecraftProvider;
5253
import net.fabricmc.loom.extension.LoomFiles;
5354

5455
public abstract class DependencyProvider {
@@ -93,6 +94,10 @@ public LoomFiles getDirectories() {
9394
return getExtension().getFiles();
9495
}
9596

97+
public MinecraftProvider getMinecraftProvider() {
98+
return getExtension().getMinecraftProvider();
99+
}
100+
96101
public boolean isRefreshDeps() {
97102
return LoomGradlePlugin.refreshDeps;
98103
}

src/main/java/net/fabricmc/loom/configuration/LoomDependencyManager.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ public void handleDependencies(Project project) {
139139
}
140140

141141
SourceRemapper sourceRemapper = new SourceRemapper(project, true);
142-
String mappingsKey = mappingsProvider.getMappingsKey();
142+
String mappingsIdentifier = mappingsProvider.mappingsIdentifier();
143143

144144
if (extension.getInstallerData() == null) {
145145
//If we've not found the installer JSON we've probably skipped remapping Fabric loader, let's go looking
@@ -168,7 +168,7 @@ public void handleDependencies(Project project) {
168168
project.getLogger().warn("fabric-installer.json not found in classpath!");
169169
}
170170

171-
ModCompileRemapper.remapDependencies(project, mappingsKey, extension, sourceRemapper);
171+
ModCompileRemapper.remapDependencies(project, mappingsIdentifier, extension, sourceRemapper);
172172

173173
long start = System.currentTimeMillis();
174174

src/main/java/net/fabricmc/loom/configuration/processors/MinecraftProcessedProvider.java

+4-3
Original file line numberDiff line numberDiff line change
@@ -66,11 +66,11 @@ protected void addDependencies(DependencyInfo dependency, Consumer<Runnable> pos
6666
}
6767

6868
getProject().getDependencies().add(Constants.Configurations.MINECRAFT_NAMED,
69-
getProject().getDependencies().module("net.minecraft:minecraft:" + getJarVersionString(projectMappedClassifier)));
69+
getProject().getDependencies().module("net.minecraft:minecraft-" + projectMappedClassifier + ":" + getMinecraftProvider().minecraftVersion() + "/" + getExtension().getMappingsProvider().mappingsIdentifier()));
7070
}
7171

7272
private void invalidateJars() {
73-
File dir = getJarDirectory(getExtension().getFiles().getUserCache(), projectMappedClassifier);
73+
File dir = projectMappedJar.getParentFile();
7474

7575
if (dir.exists()) {
7676
getProject().getLogger().warn("Invalidating project jars");
@@ -87,7 +87,8 @@ private void invalidateJars() {
8787
public void initFiles(MinecraftProviderImpl minecraftProvider, MappingsProviderImpl mappingsProvider) {
8888
super.initFiles(minecraftProvider, mappingsProvider);
8989

90-
projectMappedJar = new File(getJarDirectory(getExtension().getFiles().getRootProjectPersistentCache(), projectMappedClassifier), "minecraft-" + getJarVersionString(projectMappedClassifier) + ".jar");
90+
projectMappedJar = new File(getDirectories().getRootProjectPersistentCache(), getMinecraftProvider().minecraftVersion() + "/"
91+
+ getExtension().getMappingsProvider().mappingsIdentifier() + "/minecraft-" + projectMappedClassifier + ".jar");
9192
}
9293

9394
@Override

src/main/java/net/fabricmc/loom/configuration/providers/LaunchProvider.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@ public void provide(DependencyInfo dependency, Consumer<Runnable> postPopulation
5858
.property("fabric.remapClasspathFile", getRemapClasspathFile().getAbsolutePath())
5959
.property("log4j.configurationFile", getAllLog4JConfigFiles())
6060

61-
.property("client", "java.library.path", getDirectories().getNativesDirectory(getExtension().getMinecraftProvider()).getAbsolutePath())
62-
.property("client", "org.lwjgl.librarypath", getDirectories().getNativesDirectory(getExtension().getMinecraftProvider()).getAbsolutePath())
61+
.property("client", "java.library.path", getExtension().getMinecraftProvider().nativesDir().getAbsolutePath())
62+
.property("client", "org.lwjgl.librarypath", getExtension().getMinecraftProvider().nativesDir().getAbsolutePath())
6363

6464
.argument("client", "--assetIndex")
6565
.argument("client", getExtension().getMinecraftProvider().getVersionInfo().assetIndex().fabricId(getExtension().getMinecraftProvider().minecraftVersion()))

src/main/java/net/fabricmc/loom/configuration/providers/MinecraftProvider.java

+12
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,21 @@
2424

2525
package net.fabricmc.loom.configuration.providers;
2626

27+
import java.io.File;
28+
2729
import net.fabricmc.loom.configuration.providers.minecraft.MinecraftVersionMeta;
2830

2931
public interface MinecraftProvider {
32+
File workingDir();
33+
34+
boolean hasCustomNatives();
35+
36+
File nativesDir();
37+
38+
File dir(String path);
39+
40+
File file(String path);
41+
3042
String minecraftVersion();
3143

3244
MinecraftVersionMeta getVersionInfo();

src/main/java/net/fabricmc/loom/configuration/providers/MinecraftProviderImpl.java

+38-4
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ public class MinecraftProviderImpl extends DependencyProvider implements Minecra
5353
private MinecraftVersionMeta versionInfo;
5454
private MinecraftLibraryProvider libraryProvider;
5555

56+
private File workingDir;
5657
private File minecraftJson;
5758
private File minecraftClientJar;
5859
private File minecraftServerJar;
@@ -112,10 +113,12 @@ public void provide(DependencyInfo dependency, Consumer<Runnable> postPopulation
112113
}
113114

114115
private void initFiles() {
115-
minecraftJson = new File(getDirectories().getUserCache(), "minecraft-" + minecraftVersion + "-info.json");
116-
minecraftClientJar = new File(getDirectories().getUserCache(), "minecraft-" + minecraftVersion + "-client.jar");
117-
minecraftServerJar = new File(getDirectories().getUserCache(), "minecraft-" + minecraftVersion + "-server.jar");
118-
minecraftMergedJar = new File(getDirectories().getUserCache(), "minecraft-" + minecraftVersion + "-merged.jar");
116+
workingDir = new File(getDirectories().getUserCache(), minecraftVersion);
117+
workingDir.mkdirs();
118+
minecraftJson = file("minecraft-info.json");
119+
minecraftClientJar = file("minecraft-client.jar");
120+
minecraftServerJar = file("minecraft-server.jar");
121+
minecraftMergedJar = file("minecraft-merged.jar");
119122
versionManifestJson = new File(getDirectories().getUserCache(), "version_manifest.json");
120123
experimentalVersionsJson = new File(getDirectories().getUserCache(), "experimental_version_manifest.json");
121124
}
@@ -257,6 +260,37 @@ public File getMergedJar() {
257260
return minecraftMergedJar;
258261
}
259262

263+
@Override
264+
public File workingDir() {
265+
return workingDir;
266+
}
267+
268+
@Override
269+
public boolean hasCustomNatives() {
270+
return getProject().getProperties().get("fabric.loom.natives.dir") != null;
271+
}
272+
273+
@Override
274+
public File nativesDir() {
275+
if (hasCustomNatives()) {
276+
return new File((String) getProject().property("fabric.loom.natives.dir"));
277+
}
278+
279+
return dir("natives");
280+
}
281+
282+
@Override
283+
public File dir(String path) {
284+
File dir = file(path);
285+
dir.mkdirs();
286+
return dir;
287+
}
288+
289+
@Override
290+
public File file(String path) {
291+
return new File(workingDir(), path);
292+
}
293+
260294
@Override
261295
public String minecraftVersion() {
262296
return minecraftVersion;

src/main/java/net/fabricmc/loom/configuration/providers/mappings/GradleMappingContext.java

+1-3
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,7 @@ public MinecraftProvider minecraftProvider() {
6262

6363
@Override
6464
public File workingDirectory(String name) {
65-
File tempDir = new File(mappingsProvider().getMappingsDir().toFile(), workingDirName);
66-
tempDir.mkdirs();
67-
return new File(tempDir, name);
65+
return new File(minecraftProvider().dir("layered/working_dir/" + workingDirName), name);
6866
}
6967

7068
@Override

src/main/java/net/fabricmc/loom/configuration/providers/mappings/LayeredMappingsDependency.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ public LayeredMappingsDependency(MappingContext mappingContext, LayeredMappingSp
6464

6565
@Override
6666
public Set<File> resolve() {
67-
Path mappingsDir = mappingContext.mappingsProvider().getMappingsDir();
67+
Path mappingsDir = mappingContext.minecraftProvider().dir("layered").toPath();
6868
Path mappingsFile = mappingsDir.resolve(String.format("%s.%s-%s.tiny", GROUP, MODULE, getVersion()));
6969

7070
if (!Files.exists(mappingsFile) || LoomGradlePlugin.refreshDeps) {

src/main/java/net/fabricmc/loom/configuration/providers/mappings/MappingsProvider.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
import java.nio.file.Path;
2929

3030
public interface MappingsProvider {
31-
Path getMappingsDir();
31+
Path mappingsWorkingDir();
3232

3333
File intermediaryTinyFile();
3434
}

0 commit comments

Comments
 (0)