aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/net/fabricmc/loom/build
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2021-05-05 02:21:49 +0800
committershedaniel <daniel@shedaniel.me>2021-05-05 02:21:49 +0800
commitaba834b0402479029aec7f710a92b20176d5b7c5 (patch)
tree02e11a561c2ea02725851d40c6413d9d5b02ff21 /src/main/java/net/fabricmc/loom/build
parentf0ec1b61ddfe6ee0bd7b5850fdfaac077bfe42f0 (diff)
parent7ce072c47af8c5b336c36d0f22f6b44b24363f7c (diff)
downloadarchitectury-loom-aba834b0402479029aec7f710a92b20176d5b7c5.tar.gz
architectury-loom-aba834b0402479029aec7f710a92b20176d5b7c5.tar.bz2
architectury-loom-aba834b0402479029aec7f710a92b20176d5b7c5.zip
Merge remote-tracking branch 'FabricMC/future/dev' into dev/future
# Conflicts: # .github/workflows/test-push.yml # src/main/java/net/fabricmc/loom/LoomGradleExtension.java # src/main/java/net/fabricmc/loom/build/ModCompileRemapper.java # src/test/groovy/net/fabricmc/loom/test/util/ProjectTestTrait.groovy
Diffstat (limited to 'src/main/java/net/fabricmc/loom/build')
-rw-r--r--src/main/java/net/fabricmc/loom/build/ModCompileRemapper.java78
1 files changed, 41 insertions, 37 deletions
diff --git a/src/main/java/net/fabricmc/loom/build/ModCompileRemapper.java b/src/main/java/net/fabricmc/loom/build/ModCompileRemapper.java
index 72cf4620..f71bf3fb 100644
--- a/src/main/java/net/fabricmc/loom/build/ModCompileRemapper.java
+++ b/src/main/java/net/fabricmc/loom/build/ModCompileRemapper.java
@@ -46,6 +46,7 @@ import org.gradle.language.base.artifact.SourcesArtifact;
import net.fabricmc.loom.LoomGradleExtension;
import net.fabricmc.loom.LoomGradlePlugin;
+import net.fabricmc.loom.configuration.LoomProjectData;
import net.fabricmc.loom.configuration.RemappedConfigurationEntry;
import net.fabricmc.loom.configuration.mods.ModProcessor;
import net.fabricmc.loom.configuration.processors.dependency.ModDependencyInfo;
@@ -64,61 +65,64 @@ public class ModCompileRemapper {
final File modStore = extension.getRemappedModCache();
final RemapData remapData = new RemapData(mappingsSuffix, modStore);
+ final LoomProjectData data = extension.getProjectData();
+
for (RemappedConfigurationEntry entry : Constants.MOD_COMPILE_ENTRIES) {
- Configuration sourceConfig = project.getConfigurations().getByName(entry.getSourceConfiguration());
- Configuration remappedConfig = project.getConfigurations().getByName(entry.getRemappedConfiguration());
- Configuration regularConfig = project.getConfigurations().getByName(entry.getTargetConfiguration(project.getConfigurations()));
+ data.getLazyConfigurationProvider(entry.getRemappedConfiguration()).configure(remappedConfig -> {
+ Configuration sourceConfig = project.getConfigurations().getByName(entry.getSourceConfiguration());
+ Configuration regularConfig = project.getConfigurations().getByName(entry.getTargetConfiguration(project.getConfigurations()));
- List<ModDependencyInfo> modDependencies = new ArrayList<>();
+ List<ModDependencyInfo> modDependencies = new ArrayList<>();
- for (ResolvedArtifact artifact : sourceConfig.getResolvedConfiguration().getResolvedArtifacts()) {
- // TODO: This collection doesn't appear to include FileCollection dependencies
- // Might have to go based on the dependencies, rather than their resolved form?
- // File dependencies use SelfResolvingDependency, which appears to be handled differently
- String group = artifact.getModuleVersion().getId().getGroup();
- String name = artifact.getModuleVersion().getId().getName();
- String version = artifact.getModuleVersion().getId().getVersion();
+ for (ResolvedArtifact artifact : sourceConfig.getResolvedConfiguration().getResolvedArtifacts()) {
+ // TODO: This collection doesn't appear to include FileCollection dependencies
+ // Might have to go based on the dependencies, rather than their resolved form?
+ // File dependencies use SelfResolvingDependency, which appears to be handled differently
+ String group = artifact.getModuleVersion().getId().getGroup();
+ String name = artifact.getModuleVersion().getId().getName();
+ String version = artifact.getModuleVersion().getId().getVersion();
if (!shouldRemapMod(logger, artifact, extension.isForge(), sourceConfig.getName())) {
- addToRegularCompile(project, regularConfig, artifact);
- continue;
- }
+ addToRegularCompile(project, regularConfig, artifact);
+ continue;
+ }
- ModDependencyInfo info = new ModDependencyInfo(group, name, version, artifact.getClassifier(), artifact.getFile(), remappedConfig, remapData);
+ ModDependencyInfo info = new ModDependencyInfo(group, name, version, artifact.getClassifier(), artifact.getFile(), remappedConfig, remapData);
- if (refreshDeps) {
- info.forceRemap();
- }
+ if (refreshDeps) {
+ info.forceRemap();
+ }
- modDependencies.add(info);
+ modDependencies.add(info);
String remappedLog = group + ":" + name + ":" + version + (artifact.getClassifier() == null ? "" : ":" + artifact.getClassifier()) + " (" + mappingsSuffix + ")" + (info.requiresRemapping() ? " requires remapping" : " already remapped in " + info.getRemappedOutput().getAbsolutePath());
- project.getLogger().info(":providing " + remappedLog);
+ project.getLogger().info(":providing " + remappedLog);
- File remappedSources = info.getRemappedOutput("sources");
+ File remappedSources = info.getRemappedOutput("sources");
- if ((!remappedSources.exists() || refreshDeps) && !OperatingSystem.isCIBuild()) {
- File sources = findSources(dependencies, artifact);
+ if ((!remappedSources.exists() || refreshDeps) && !OperatingSystem.isCIBuild()) {
+ File sources = findSources(dependencies, artifact);
- if (sources != null) {
- scheduleSourcesRemapping(project, sourceRemapper, sources, info.getRemappedNotation(), remappedSources);
+ if (sources != null) {
+ scheduleSourcesRemapping(project, sourceRemapper, sources, info.getRemappedNotation(), remappedSources);
+ }
}
}
- }
- try {
- ModProcessor.processMods(project, modDependencies);
- } catch (IOException e) {
- // Failed to remap, lets clean up to ensure we try again next time
- modDependencies.forEach(info -> info.getRemappedOutput().delete());
- throw new RuntimeException("Failed to remap mods", e);
- }
+ try {
+ ModProcessor.processMods(project, modDependencies);
+ } catch (IOException e) {
+ // Failed to remap, lets clean up to ensure we try again next time
+ modDependencies.forEach(info -> info.getRemappedOutput().delete());
+ throw new RuntimeException("Failed to remap mods", e);
+ }
- // Add all of the remapped mods onto the config
- for (ModDependencyInfo info : modDependencies) {
+ // Add all of the remapped mods onto the config
+ for (ModDependencyInfo info : modDependencies) {
project.getLogger().info(":adding " + info.toString() + " into " + info.targetConfig.getName());
- project.getDependencies().add(info.targetConfig.getName(), info.getRemappedNotation());
- }
+ project.getDependencies().add(info.targetConfig.getName(), info.getRemappedNotation());
+ }
+ });
}
}