Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: FabricMC/fabric-loom
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: dev/1.5
Choose a base ref
...
head repository: babric/fabric-loom
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: dev/1.5
Choose a head ref
Able to merge. These branches can be automatically merged.
  • 2 commits
  • 24 files changed
  • 1 contributor

Commits on Feb 8, 2024

  1. Babric-ify

    js6pak committed Feb 8, 2024
    Copy the full SHA
    d3ce6db View commit details
  2. Copy the full SHA
    a01d980 View commit details
Showing with 257 additions and 185 deletions.
  1. +0 −145 .github/workflows/test-push.yml
  2. +10 −6 build.gradle
  3. +1 −1 gradle.properties
  4. +4 −4 gradle/libs.versions.toml
  5. +2 −2 gradle/runtime.libs.versions.toml
  6. +2 −1 src/main/java/net/fabricmc/loom/LoomGradleExtension.java
  7. +4 −0 src/main/java/net/fabricmc/loom/api/LoomGradleExtensionAPI.java
  8. +19 −1 src/main/java/net/fabricmc/loom/api/mappings/layered/MappingsNamespace.java
  9. +3 −1 src/main/java/net/fabricmc/loom/configuration/CompileConfiguration.java
  10. +24 −0 src/main/java/net/fabricmc/loom/configuration/InstallerData.java
  11. +1 −0 src/main/java/net/fabricmc/loom/configuration/ide/RunConfig.java
  12. +2 −2 src/main/java/net/fabricmc/loom/configuration/providers/mappings/IntermediateMappingsService.java
  13. +3 −0 src/main/java/net/fabricmc/loom/configuration/providers/mappings/MappingConfiguration.java
  14. +4 −2 src/main/java/net/fabricmc/loom/configuration/providers/mappings/tiny/MappingsMerger.java
  15. +96 −0 src/main/java/net/fabricmc/loom/configuration/providers/minecraft/GluedMinecraftProvider.java
  16. +14 −14 src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MergedMinecraftProvider.java
  17. +8 −0 src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftJarConfiguration.java
  18. +7 −3 src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftProvider.java
  19. +1 −1 ...a/net/fabricmc/loom/configuration/providers/minecraft/mapped/AbstractMappedMinecraftProvider.java
  20. +15 −1 ...ava/net/fabricmc/loom/configuration/providers/minecraft/mapped/IntermediaryMinecraftProvider.java
  21. +19 −0 src/main/java/net/fabricmc/loom/configuration/providers/minecraft/mapped/NamedMinecraftProvider.java
  22. +12 −0 ...a/net/fabricmc/loom/configuration/providers/minecraft/mapped/ProcessedNamedMinecraftProvider.java
  23. +5 −0 src/main/java/net/fabricmc/loom/util/TinyRemapperHelper.java
  24. +1 −1 src/main/java/net/fabricmc/loom/util/gradle/GradleUtils.java
145 changes: 0 additions & 145 deletions .github/workflows/test-push.yml

This file was deleted.

16 changes: 10 additions & 6 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -49,7 +49,7 @@ tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
}
}

group = 'net.fabricmc'
group = 'babric'
def baseVersion = '1.5'

def ENV = System.getenv()
@@ -71,6 +71,10 @@ repositories {
url = 'https://maven.fabricmc.net/'
}
mavenCentral()
maven {
name = 'Babric'
url = 'https://maven.glass-launcher.net/babric'
}
}

configurations {
@@ -253,7 +257,7 @@ codenarc {
gradlePlugin {
plugins {
fabricLoom {
id = 'fabric-loom'
id = 'babric-loom'
implementationClass = 'net.fabricmc.loom.bootstrap.LoomGradlePluginBootstrap'
}
}
@@ -312,8 +316,8 @@ publishing {

// Manually crate the plugin marker for snapshot versions
snapshotPlugin(MavenPublication) { publication ->
groupId 'fabric-loom'
artifactId 'fabric-loom.gradle.plugin'
groupId 'babric-loom'
artifactId 'babric-loom.gradle.plugin'
version baseVersion + '-SNAPSHOT'

pom.withXml({
@@ -323,9 +327,9 @@ publishing {
Node dependencies = root.appendChild(document.createElement('dependencies'))
Node dependency = dependencies.appendChild(document.createElement('dependency'))
Node groupId = dependency.appendChild(document.createElement('groupId'))
groupId.setTextContent('net.fabricmc')
groupId.setTextContent('babric')
Node artifactId = dependency.appendChild(document.createElement('artifactId'))
artifactId.setTextContent('fabric-loom')
artifactId.setTextContent('babric-loom')
Node version = dependency.appendChild(document.createElement('version'))
version.setTextContent(baseVersion + '-SNAPSHOT')
})
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name = fabric-loom
name = babric-loom
description = The Gradle plugin for Fabric
url = https://github.com/FabricMC/fabric-loom

8 changes: 4 additions & 4 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -5,11 +5,11 @@ commons-io = "2.15.1"
gson = "2.10.1"
guava = "33.0.0-jre"

stitch = "0.6.2"
stitch = "0.6.2-babric.1"
tiny-remapper = "0.10.0"
access-widener = "2.1.0"
mapping-io = "0.5.1"
lorenz-tiny = "4.0.2"
lorenz-tiny = "4.0.2-babric.2"
mercury = "0.4.1"
kotlinx-metadata = "0.8.0"

@@ -32,11 +32,11 @@ commons-io = { module = "commons-io:commons-io", version.ref = "commons-io" }
gson = { module = "com.google.code.gson:gson", version.ref = "gson" }
guava = { module = "com.google.guava:guava", version.ref = "guava" }

fabric-stitch = { module = "net.fabricmc:stitch", version.ref = "stitch" }
fabric-stitch = { module = "babric:stitch", version.ref = "stitch" }
fabric-tiny-remapper = { module = "net.fabricmc:tiny-remapper", version.ref = "tiny-remapper" }
fabric-access-widener = { module = "net.fabricmc:access-widener", version.ref = "access-widener" }
fabric-mapping-io = { module = "net.fabricmc:mapping-io", version.ref = "mapping-io" }
fabric-lorenz-tiny = { module = "net.fabricmc:lorenz-tiny", version.ref = "lorenz-tiny" }
fabric-lorenz-tiny = { module = "babric:lorenz-tiny", version.ref = "lorenz-tiny" }
fabric-mercury = { module = "net.fabricmc:mercury", version.ref = "mercury" }

# Misc
4 changes: 2 additions & 2 deletions gradle/runtime.libs.versions.toml
Original file line number Diff line number Diff line change
@@ -5,7 +5,7 @@ cfr = "0.2.1"
vineflower = "1.9.3"

# Runtime depedencies
mixin-compile-extensions = "0.6.0"
mixin-compile-extensions = "0.6.0-babric.1"
dev-launch-injector = "0.2.1+build.8"
terminal-console-appender = "1.3.0"
jetbrains-annotations = "24.1.0"
@@ -18,7 +18,7 @@ cfr = { module = "net.fabricmc:cfr", version.ref = "cfr" }
vineflower = { module = "org.vineflower:vineflower", version.ref = "vineflower" }

# Runtime depedencies
mixin-compile-extensions = { module = "net.fabricmc:fabric-mixin-compile-extensions", version.ref = "mixin-compile-extensions" }
mixin-compile-extensions = { module = "babric:fabric-mixin-compile-extensions", version.ref = "mixin-compile-extensions" }
dev-launch-injector = { module = "net.fabricmc:dev-launch-injector", version.ref = "dev-launch-injector" }
terminal-console-appender = { module = "net.minecrell:terminalconsoleappender", version.ref = "terminal-console-appender" }
jetbrains-annotations = { module = "org.jetbrains:annotations", version.ref = "jetbrains-annotations" }
3 changes: 2 additions & 1 deletion src/main/java/net/fabricmc/loom/LoomGradleExtension.java
Original file line number Diff line number Diff line change
@@ -86,7 +86,8 @@ default List<Path> getMinecraftJars(MappingsNamespace mappingsNamespace) {
return switch (mappingsNamespace) {
case NAMED -> getNamedMinecraftProvider().getMinecraftJarPaths();
case INTERMEDIARY -> getIntermediaryMinecraftProvider().getMinecraftJarPaths();
case OFFICIAL -> getMinecraftProvider().getMinecraftJars();
case OFFICIAL, GLUE -> getMinecraftProvider().getMinecraftJars();
case SERVER, CLIENT -> null;
};
}

Original file line number Diff line number Diff line change
@@ -221,6 +221,10 @@ default void splitMinecraftJar() {

boolean areEnvironmentSourceSetsSplit();

default void gluedMinecraftJar() {
getMinecraftJarConfiguration().set(MinecraftJarConfiguration.GLUED);
}

Property<Boolean> getRuntimeOnlyLog4j();

Property<Boolean> getSplitModDependencies();
Original file line number Diff line number Diff line change
@@ -49,7 +49,22 @@ public enum MappingsNamespace {
/**
* Named mappings are the developer friendly names used to develop mods against.
*/
NAMED;
NAMED,

/**
* Mappings used for merging two jars that were obfuscated differently.
*/
GLUE,

/**
* Official mappings are the names that are used in the vanilla Minecraft server jars, these are usually obfuscated.
*/
SERVER,

/**
* Official mappings are the names that are used in the vanilla Minecraft client jars, these are usually obfuscated.
*/
CLIENT;

/**
* Gets a {@code MappingsNamespace} from a namespace string.
@@ -62,6 +77,9 @@ public enum MappingsNamespace {
case "official" -> OFFICIAL;
case "intermediary" -> INTERMEDIARY;
case "named" -> NAMED;
case "glue" -> GLUE;
case "server" -> SERVER;
case "client" -> CLIENT;
default -> null;
};
}
Original file line number Diff line number Diff line change
@@ -146,13 +146,15 @@ private synchronized void setupMinecraft(ConfigContext configContext) throws Exc
// Provide the vanilla mc jars -- TODO share across getProject()s.
final MinecraftProvider minecraftProvider = jarConfiguration.getMinecraftProviderFunction().apply(configContext);
extension.setMinecraftProvider(minecraftProvider);
minecraftProvider.provide();
minecraftProvider.init();

final DependencyInfo mappingsDep = DependencyInfo.create(getProject(), Configurations.MAPPINGS);
final MappingConfiguration mappingConfiguration = MappingConfiguration.create(getProject(), configContext.serviceManager(), mappingsDep, minecraftProvider);
extension.setMappingConfiguration(mappingConfiguration);
mappingConfiguration.applyToProject(getProject(), mappingsDep);

minecraftProvider.provide();

// Provide the remapped mc jars
final IntermediaryMinecraftProvider<?> intermediaryMinecraftProvider = jarConfiguration.getIntermediaryMinecraftProviderBiFunction().apply(project, minecraftProvider);
NamedMinecraftProvider<?> namedMinecraftProvider = jarConfiguration.getNamedMinecraftProviderBiFunction().apply(project, minecraftProvider);
24 changes: 24 additions & 0 deletions src/main/java/net/fabricmc/loom/configuration/InstallerData.java
Original file line number Diff line number Diff line change
@@ -24,9 +24,12 @@

package net.fabricmc.loom.configuration;

import java.util.List;

import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.reflect.TypeToken;
import org.gradle.api.Project;
import org.gradle.api.artifacts.Configuration;
import org.gradle.api.artifacts.ExternalModuleDependency;
@@ -36,9 +39,12 @@
import org.slf4j.LoggerFactory;

import net.fabricmc.loom.LoomGradleExtension;
import net.fabricmc.loom.LoomGradlePlugin;
import net.fabricmc.loom.LoomRepositoryPlugin;
import net.fabricmc.loom.configuration.ide.idea.IdeaUtils;
import net.fabricmc.loom.configuration.providers.minecraft.MinecraftVersionMeta;
import net.fabricmc.loom.util.Constants;
import net.fabricmc.loom.util.Platform;

public record InstallerData(String version, JsonObject installerJson) {
private static final Logger LOGGER = LoggerFactory.getLogger(InstallerData.class);
@@ -71,6 +77,24 @@ private void applyDependendencies(JsonArray jsonArray, Project project) {
final JsonObject jsonObject = jsonElement.getAsJsonObject();
final String name = jsonObject.get("name").getAsString();

if (jsonObject.has("rules")) {
TypeToken<List<MinecraftVersionMeta.Rule>> rulesTypeToken = new TypeToken<>() {
};
List<MinecraftVersionMeta.Rule> rules = LoomGradlePlugin.GSON.fromJson(jsonObject.get("rules"), rulesTypeToken);

boolean valid = false;

for (MinecraftVersionMeta.Rule rule : rules) {
if (rule.appliesToOS(Platform.CURRENT)) {
valid = rule.isAllowed();
}
}

if (!valid) {
continue;
}
}

LOGGER.debug("Adding dependency ({}) from installer JSON", name);

ExternalModuleDependency modDep = (ExternalModuleDependency) project.getDependencies().create(name);
Original file line number Diff line number Diff line change
@@ -121,6 +121,7 @@ private static void populate(Project project, LoomGradleExtension extension, Run
runConfig.mainClass = "net.fabricmc.devlaunchinjector.Main";
runConfig.vmArgs.add("-Dfabric.dli.config=" + encodeEscaped(extension.getFiles().getDevLauncherConfig().getAbsolutePath()));
runConfig.vmArgs.add("-Dfabric.dli.env=" + environment.toLowerCase());
runConfig.vmArgs.add("-Djava.library.path=" + extension.getFiles().getNativesDirectory(project).getAbsolutePath());
}

// Turns camelCase/PascalCase into Capital Case
Loading