diff --git a/src/main/java/net/fabricmc/loom/LoomGradleExtension.java b/src/main/java/net/fabricmc/loom/LoomGradleExtension.java index bf1c3476..390b50a4 100644 --- a/src/main/java/net/fabricmc/loom/LoomGradleExtension.java +++ b/src/main/java/net/fabricmc/loom/LoomGradleExtension.java @@ -72,6 +72,7 @@ import net.fabricmc.loom.util.function.LazyBool; public class LoomGradleExtension { private static final String FORGE_PROPERTY = "loom.forge"; + private static final String INCLUDE_PROPERTY = "loom.forge.include"; public String refmapName; public String loaderLaunchMethod; @@ -102,6 +103,7 @@ public class LoomGradleExtension { private MappingSet[] srcMappingCache = new MappingSet[2]; private Mercury[] srcMercuryCache = new Mercury[2]; private final LazyBool forge; + private final LazyBool supportsInclude; private Set mixinMappings = Collections.synchronizedSet(new HashSet<>()); private final List tasksBeforeRun = Collections.synchronizedList(new ArrayList<>()); public final List> forgeLocalMods = Collections.synchronizedList(new ArrayList<>(Arrays.asList(new Supplier() { @@ -219,6 +221,7 @@ public class LoomGradleExtension { this.project = project; this.unmappedMods = project.files(); this.forge = new LazyBool(() -> Boolean.parseBoolean(Objects.toString(project.findProperty(FORGE_PROPERTY)))); + this.supportsInclude = new LazyBool(() -> Boolean.parseBoolean(Objects.toString(project.findProperty(INCLUDE_PROPERTY)))); this.runConfigs = project.container(RunConfigSettings.class, baseName -> new RunConfigSettings(project, baseName)); this.launchConfigs = project.container(LaunchProviderSettings.class, @@ -474,6 +477,10 @@ public class LoomGradleExtension { return forge.getAsBoolean(); } + public boolean supportsInclude() { + return !isForge() || supportsInclude.getAsBoolean(); + } + public boolean shouldGenerateSrgTiny() { if (generateSrgTiny != null) { return generateSrgTiny; diff --git a/src/main/java/net/fabricmc/loom/build/NestedJars.java b/src/main/java/net/fabricmc/loom/build/NestedJars.java index 97a0269d..4be42296 100644 --- a/src/main/java/net/fabricmc/loom/build/NestedJars.java +++ b/src/main/java/net/fabricmc/loom/build/NestedJars.java @@ -99,7 +99,7 @@ public class NestedJars { private static List getContainedJars(Project project) { List fileList = new ArrayList<>(); - if (project.getExtensions().getByType(LoomGradleExtension.class).isForge()) { + if (!project.getExtensions().getByType(LoomGradleExtension.class).supportsInclude()) { return fileList; } diff --git a/src/main/java/net/fabricmc/loom/configuration/CompileConfiguration.java b/src/main/java/net/fabricmc/loom/configuration/CompileConfiguration.java index eb816313..f22ff5d1 100644 --- a/src/main/java/net/fabricmc/loom/configuration/CompileConfiguration.java +++ b/src/main/java/net/fabricmc/loom/configuration/CompileConfiguration.java @@ -118,7 +118,7 @@ public final class CompileConfiguration { extendsFrom(Constants.Configurations.MINECRAFT_DEPENDENCIES, Constants.Configurations.FORGE_DEPENDENCIES, project); } - if (!project.getExtensions().getByType(LoomGradleExtension.class).isForge()) { + if (project.getExtensions().getByType(LoomGradleExtension.class).supportsInclude()) { Configuration includeConfig = project.getConfigurations().maybeCreate(Constants.Configurations.INCLUDE); includeConfig.setTransitive(false); // Dont get transitive deps } @@ -294,7 +294,7 @@ public final class CompileConfiguration { project1.getTasks().getByName("build").dependsOn(remapJarTask); project.getTasks().withType(RemapJarTask.class).forEach(task -> { - if (!extension.isForge() && task.getAddNestedDependencies().getOrElse(false)) { + if (extension.supportsInclude() && task.getAddNestedDependencies().getOrElse(false)) { NestedJars.getRequiredTasks(project1).forEach(task::dependsOn); } });