Allow specifying natives directory with the fabric.loom.natives.dir gradle property.

Note this is designed to allow easy usage of custom natives, thus will not populate the directory with the default natives.
This commit is contained in:
modmuss50 2020-12-02 20:18:12 +00:00
parent 98725f9400
commit dd68c84226
2 changed files with 18 additions and 0 deletions
src/main/java/net/fabricmc/loom

View file

@ -236,6 +236,12 @@ public class LoomGradleExtension {
}
public File getNativesDirectory() {
Object customNativesDir = project.getProperties().get("fabric.loom.natives.dir");
if (customNativesDir != null) {
return new File((String) customNativesDir);
}
File natives = new File(getUserCache(), "natives/" + getMinecraftProvider().getMinecraftVersion());
if (!natives.exists()) {
@ -245,6 +251,10 @@ public class LoomGradleExtension {
return natives;
}
public boolean hasCustomNatives() {
return project.getProperties().get("fabric.loom.natives.dir") != null;
}
public File getDevLauncherConfig() {
return new File(getProjectPersistentCache(), "launch.cfg");
}

View file

@ -45,6 +45,14 @@ public class MinecraftNativesProvider {
File nativesDir = extension.getNativesDirectory();
File jarStore = extension.getNativesJarStore();
if (extension.hasCustomNatives()) {
if (!nativesDir.exists()) {
throw new RuntimeException("Could no find custom natives directory at " + nativesDir.getAbsolutePath());
}
return;
}
for (MinecraftVersionInfo.Library library : versionInfo.libraries) {
File libJarFile = library.getFile(jarStore);