diff options
author | shedaniel <daniel@shedaniel.me> | 2021-05-05 02:21:49 +0800 |
---|---|---|
committer | shedaniel <daniel@shedaniel.me> | 2021-05-05 02:21:49 +0800 |
commit | aba834b0402479029aec7f710a92b20176d5b7c5 (patch) | |
tree | 02e11a561c2ea02725851d40c6413d9d5b02ff21 /src/main/java/net/fabricmc/loom/build | |
parent | f0ec1b61ddfe6ee0bd7b5850fdfaac077bfe42f0 (diff) | |
parent | 7ce072c47af8c5b336c36d0f22f6b44b24363f7c (diff) | |
download | architectury-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.java | 78 |
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()); + } + }); } } |