diff --git a/src/main/java/net/fabricmc/loom/configuration/CompileConfiguration.java b/src/main/java/net/fabricmc/loom/configuration/CompileConfiguration.java index e4596387..a7f0ef6f 100644 --- a/src/main/java/net/fabricmc/loom/configuration/CompileConfiguration.java +++ b/src/main/java/net/fabricmc/loom/configuration/CompileConfiguration.java @@ -54,6 +54,7 @@ import net.fabricmc.loom.build.mixin.ScalaApInvoker; import net.fabricmc.loom.configuration.accesstransformer.AccessTransformerJarProcessor; import net.fabricmc.loom.configuration.accesswidener.AccessWidenerJarProcessor; import net.fabricmc.loom.configuration.ifaceinject.InterfaceInjectionProcessor; +import net.fabricmc.loom.configuration.mods.ModConfigurationRemapper; import net.fabricmc.loom.configuration.processors.MinecraftJarProcessorManager; import net.fabricmc.loom.configuration.processors.ModJavadocProcessor; import net.fabricmc.loom.configuration.providers.forge.DependencyProviders; @@ -78,7 +79,6 @@ import net.fabricmc.loom.extension.MixinExtension; import net.fabricmc.loom.util.Checksum; import net.fabricmc.loom.util.Constants; import net.fabricmc.loom.util.ExceptionUtil; -import net.fabricmc.loom.util.OperatingSystem; import net.fabricmc.loom.util.gradle.GradleUtils; import net.fabricmc.loom.util.gradle.SourceSetHelper; import net.fabricmc.loom.util.service.ScopedSharedServiceManager; @@ -163,10 +163,11 @@ public final class CompileConfiguration { configuration.attributes(attributes -> attributes.attribute(Usage.USAGE_ATTRIBUTE, javaRuntime)); }); - extendsFrom(Constants.Configurations.MINECRAFT_SERVER_DEPENDENCIES, Constants.Configurations.FORGE_DEPENDENCIES); + extendsFrom(Configurations.MINECRAFT_COMPILE_LIBRARIES, Constants.Configurations.FORGE_DEPENDENCIES); + extendsFrom(Configurations.MINECRAFT_RUNTIME_LIBRARIES, Constants.Configurations.FORGE_DEPENDENCIES); extendsFrom(Constants.Configurations.FORGE_RUNTIME_LIBRARY, Constants.Configurations.FORGE_DEPENDENCIES); - extendsFrom(Constants.Configurations.FORGE_RUNTIME_LIBRARY, Constants.Configurations.MINECRAFT_DEPENDENCIES); + extendsFrom(Constants.Configurations.FORGE_RUNTIME_LIBRARY, Configurations.MINECRAFT_RUNTIME_LIBRARIES); extendsFrom(Constants.Configurations.FORGE_RUNTIME_LIBRARY, Constants.Configurations.FORGE_EXTRA); extendsFrom(Constants.Configurations.FORGE_RUNTIME_LIBRARY, Constants.Configurations.FORGE_NAMED); // Include any user-defined libraries on the runtime CP. @@ -256,13 +257,10 @@ public final class CompileConfiguration { configureDecompileTasks(configContext); if (extension.isForge()) { - // (As of 0.12.0) Needs to be extended here since the source set is only created in aE. - extendsFrom(Constants.Configurations.FORGE_RUNTIME_LIBRARY, MinecraftSourceSets.get(project).getCombinedSourceSetName(), project); - // TODO: Find a better place for this? // This has to be after dependencyManager.handleDependencies() above // because of https://github.com/architectury/architectury-loom/issues/72. - if (!OperatingSystem.isCIBuild()) { + if (!ModConfigurationRemapper.isCIBuild()) { try { ForgeSourcesRemapper.addBaseForgeSources(project); } catch (IOException e) { diff --git a/src/main/java/net/fabricmc/loom/configuration/mods/ModConfigurationRemapper.java b/src/main/java/net/fabricmc/loom/configuration/mods/ModConfigurationRemapper.java index ed5678a9..4f84b3d2 100644 --- a/src/main/java/net/fabricmc/loom/configuration/mods/ModConfigurationRemapper.java +++ b/src/main/java/net/fabricmc/loom/configuration/mods/ModConfigurationRemapper.java @@ -301,7 +301,7 @@ public class ModConfigurationRemapper { return s == null || s.isEmpty() ? fallback.get() : s; } - private static boolean isCIBuild() { + public static boolean isCIBuild() { final String loomProperty = System.getProperty("fabric.loom.ci"); if (loomProperty != null) { diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/forge/ForgeLibrariesProvider.java b/src/main/java/net/fabricmc/loom/configuration/providers/forge/ForgeLibrariesProvider.java index 4731661c..a8075895 100644 --- a/src/main/java/net/fabricmc/loom/configuration/providers/forge/ForgeLibrariesProvider.java +++ b/src/main/java/net/fabricmc/loom/configuration/providers/forge/ForgeLibrariesProvider.java @@ -48,7 +48,6 @@ import net.fabricmc.loom.configuration.providers.mappings.MappingConfiguration; import net.fabricmc.loom.util.Constants; import net.fabricmc.loom.util.ExceptionUtil; import net.fabricmc.loom.util.FileSystemUtil; -import net.fabricmc.loom.util.OperatingSystem; import net.fabricmc.loom.util.PropertyUtil; import net.fabricmc.loom.util.srg.RemapObjectHolderVisitor; import net.fabricmc.loom.util.srg.SrgMerger; @@ -153,7 +152,7 @@ public class ForgeLibrariesProvider { } // Copy sources when not running under CI. - if (!OperatingSystem.isCIBuild()) { + if (!ModConfigurationRemapper.isCIBuild()) { final Path sourcesJar = ModConfigurationRemapper.findSources(project, artifact); if (sourcesJar != null) { diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/forge/MinecraftPatchedProvider.java b/src/main/java/net/fabricmc/loom/configuration/providers/forge/MinecraftPatchedProvider.java index c892e68a..7d170548 100644 --- a/src/main/java/net/fabricmc/loom/configuration/providers/forge/MinecraftPatchedProvider.java +++ b/src/main/java/net/fabricmc/loom/configuration/providers/forge/MinecraftPatchedProvider.java @@ -220,7 +220,7 @@ public class MinecraftPatchedProvider { } private TinyRemapper buildRemapper(SharedServiceManager serviceManager, Path input) throws IOException { - Path[] libraries = TinyRemapperHelper.getMinecraftDependencies(project); + Path[] libraries = TinyRemapperHelper.getMinecraftCompileLibraries(project); TinyMappingsService mappingsService = getExtension().getMappingConfiguration().getMappingsService(serviceManager, true); MemoryMappingTree mappingsWithSrg = mappingsService.getMappingTree(); diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/forge/mcpconfig/McpExecutor.java b/src/main/java/net/fabricmc/loom/configuration/providers/forge/mcpconfig/McpExecutor.java index eb36cafe..9575df48 100644 --- a/src/main/java/net/fabricmc/loom/configuration/providers/forge/mcpconfig/McpExecutor.java +++ b/src/main/java/net/fabricmc/loom/configuration/providers/forge/mcpconfig/McpExecutor.java @@ -1,7 +1,7 @@ /* * This file is part of fabric-loom, licensed under the MIT License (MIT). * - * Copyright (c) 2022 FabricMC + * Copyright (c) 2022-2023 FabricMC * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -336,7 +336,8 @@ public final class McpExecutor { @Override public Set getMinecraftLibraries() { - return project.getConfigurations().getByName(Constants.Configurations.MINECRAFT_DEPENDENCIES).resolve(); + // (1.2) minecraftRuntimeLibraries contains the compile-time libraries as well. + return project.getConfigurations().getByName(Constants.Configurations.MINECRAFT_RUNTIME_LIBRARIES).resolve(); } } } diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/mappings/LayeredMappingsDependency.java b/src/main/java/net/fabricmc/loom/configuration/providers/mappings/LayeredMappingsDependency.java index 2d54b4af..fde48a7c 100644 --- a/src/main/java/net/fabricmc/loom/configuration/providers/mappings/LayeredMappingsDependency.java +++ b/src/main/java/net/fabricmc/loom/configuration/providers/mappings/LayeredMappingsDependency.java @@ -40,7 +40,6 @@ import java.util.Set; import org.gradle.api.Action; import org.gradle.api.Project; import org.gradle.api.artifacts.Dependency; -import org.gradle.api.artifacts.ExternalDependency; import org.gradle.api.artifacts.ExternalModuleDependency; import org.gradle.api.artifacts.ModuleIdentifier; import org.gradle.api.artifacts.ModuleVersionIdentifier; @@ -66,6 +65,7 @@ import net.fabricmc.mappingio.adapter.MappingSourceNsSwitch; import net.fabricmc.mappingio.format.Tiny2Writer; import net.fabricmc.mappingio.tree.MemoryMappingTree; +// TODO: Bring this closer to upsteram code. public class LayeredMappingsDependency extends AbstractModuleDependency implements SelfResolvingDependency, ExternalModuleDependency, FileCollectionDependency { private static final String GROUP = "loom"; private static final String MODULE = "mappings"; @@ -208,11 +208,6 @@ public class LayeredMappingsDependency extends AbstractModuleDependency implemen return false; } - @Override - public ExternalDependency setForce(boolean b) { - return this; - } - @Override public ExternalModuleDependency copy() { return new LayeredMappingsDependency(project, mappingContext, layeredMappingSpec, version); diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftSourceSets.java b/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftSourceSets.java index c12e1ce3..9158ae3f 100644 --- a/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftSourceSets.java +++ b/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/MinecraftSourceSets.java @@ -69,6 +69,10 @@ public abstract sealed class MinecraftSourceSets permits MinecraftSourceSets.Sin configuration.extendsFrom(configurations.getByName(configurationName.mcLibsRuntimeName())); configuration.extendsFrom(configurations.getByName(Constants.Configurations.LOADER_DEPENDENCIES)); configuration.extendsFrom(configurations.getByName(Constants.Configurations.LOOM_DEVELOPMENT_DEPENDENCIES)); + + if (LoomGradleExtension.get(project).isForge()) { + configurations.getByName(Constants.Configurations.FORGE_RUNTIME_LIBRARY).extendsFrom(configuration); + } }); configurations.register(configurationName.compile(), configuration -> {