aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/net/fabricmc/loom
diff options
context:
space:
mode:
authormodmuss50 <modmuss50@gmail.com>2020-12-30 20:12:33 +0000
committermodmuss50 <modmuss50@gmail.com>2020-12-30 20:12:33 +0000
commit841fc5a4dbbb713e7698f45e74104334caa4ba01 (patch)
treeaae5fa049b4d28f8fdaf9e3e97948ee55dd158cb /src/main/java/net/fabricmc/loom
parent792a64e2efecb850e4752a298a4e3d6f50f55a64 (diff)
downloadarchitectury-loom-841fc5a4dbbb713e7698f45e74104334caa4ba01.tar.gz
architectury-loom-841fc5a4dbbb713e7698f45e74104334caa4ba01.tar.bz2
architectury-loom-841fc5a4dbbb713e7698f45e74104334caa4ba01.zip
Fix classifier handling for remapped dependencies
Diffstat (limited to 'src/main/java/net/fabricmc/loom')
-rw-r--r--src/main/java/net/fabricmc/loom/build/ModCompileRemapper.java14
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/processors/dependency/ModDependencyInfo.java28
2 files changed, 25 insertions, 17 deletions
diff --git a/src/main/java/net/fabricmc/loom/build/ModCompileRemapper.java b/src/main/java/net/fabricmc/loom/build/ModCompileRemapper.java
index 5fc7771e..8fe879a4 100644
--- a/src/main/java/net/fabricmc/loom/build/ModCompileRemapper.java
+++ b/src/main/java/net/fabricmc/loom/build/ModCompileRemapper.java
@@ -76,14 +76,13 @@ public class ModCompileRemapper {
String group = artifact.getModuleVersion().getId().getGroup();
String name = artifact.getModuleVersion().getId().getName();
String version = artifact.getModuleVersion().getId().getVersion();
- String classifierSuffix = artifact.getClassifier() == null ? "" : (":" + artifact.getClassifier());
if (!isFabricMod(logger, artifact)) {
addToRegularCompile(project, regularConfig, artifact);
continue;
}
- ModDependencyInfo info = new ModDependencyInfo(group, name, version, classifierSuffix, artifact.getFile(), remappedConfig, remapData);
+ ModDependencyInfo info = new ModDependencyInfo(group, name, version, artifact.getClassifier(), artifact.getFile(), remappedConfig, remapData);
if (refreshDeps) {
info.forceRemap();
@@ -91,16 +90,16 @@ public class ModCompileRemapper {
modDependencies.add(info);
- String remappedLog = group + ":" + name + ":" + version + classifierSuffix + " (" + mappingsSuffix + ")";
+ String remappedLog = group + ":" + name + ":" + version + (artifact.getClassifier() == null ? "" : ":" + artifact.getClassifier()) + " (" + mappingsSuffix + ")";
project.getLogger().info(":providing " + remappedLog);
- File remappedSources = new File(info.getRemappedOutput().getAbsolutePath().replace(".jar", "-sources.jar"));
+ File remappedSources = info.getRemappedOutput("sources");
if (!remappedSources.exists() || refreshDeps) {
File sources = findSources(dependencies, artifact);
if (sources != null) {
- scheduleSourcesRemapping(project, sourceRemapper, sources, info.getRemappedNotation(), info.getRemappedOutput(), modStore);
+ scheduleSourcesRemapping(project, sourceRemapper, sources, info.getRemappedNotation(), remappedSources);
}
}
}
@@ -113,7 +112,7 @@ public class ModCompileRemapper {
// Add all of the remapped mods onto the config
for (ModDependencyInfo info : modDependencies) {
- project.getDependencies().add(info.targetConfig.getName(), project.getDependencies().module(info.getRemappedNotation()));
+ project.getDependencies().add(info.targetConfig.getName(), info.getRemappedNotation());
}
}
}
@@ -165,10 +164,9 @@ public class ModCompileRemapper {
return null;
}
- private static void scheduleSourcesRemapping(Project project, SourceRemapper sourceRemapper, File sources, String remappedLog, File remappedJar, File modStore) {
+ private static void scheduleSourcesRemapping(Project project, SourceRemapper sourceRemapper, File sources, String remappedLog, File remappedSources) {
project.getLogger().debug(":providing " + remappedLog + " sources");
- File remappedSources = new File(remappedJar.getAbsolutePath().replace(".jar", "-sources.jar"));
boolean refreshDeps = project.getGradle().getStartParameter().isRefreshDependencies();
if (!remappedSources.exists() || sources.lastModified() <= 0 || sources.lastModified() > remappedSources.lastModified() || refreshDeps) {
diff --git a/src/main/java/net/fabricmc/loom/configuration/processors/dependency/ModDependencyInfo.java b/src/main/java/net/fabricmc/loom/configuration/processors/dependency/ModDependencyInfo.java
index 1f6682f4..34720051 100644
--- a/src/main/java/net/fabricmc/loom/configuration/processors/dependency/ModDependencyInfo.java
+++ b/src/main/java/net/fabricmc/loom/configuration/processors/dependency/ModDependencyInfo.java
@@ -36,6 +36,7 @@ import com.google.gson.JsonObject;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.gradle.api.artifacts.Configuration;
+import org.jetbrains.annotations.Nullable;
import net.fabricmc.loom.LoomGradlePlugin;
@@ -43,6 +44,7 @@ public class ModDependencyInfo {
private final String group;
public final String name;
public final String version;
+ @Nullable
public final String classifier;
public final File inputFile;
public final Configuration targetConfig;
@@ -51,7 +53,7 @@ public class ModDependencyInfo {
private boolean forceRemap = false;
- public ModDependencyInfo(String group, String name, String version, String classifier, File inputFile, Configuration targetConfig, RemapData remapData) {
+ public ModDependencyInfo(String group, String name, String version, @Nullable String classifier, File inputFile, Configuration targetConfig, RemapData remapData) {
this.group = group;
this.name = name;
this.version = version;
@@ -62,31 +64,35 @@ public class ModDependencyInfo {
}
public String getRemappedNotation() {
- if (classifier == null || classifier.isEmpty()) {
+ if (!hasClassifier()) {
return String.format("%s:%s:%s", getGroup(), name, version);
}
return String.format("%s:%s:%s:%s", getGroup(), name, version, classifier);
}
- private String getRemappedFilename() {
- if (classifier == null || classifier.isEmpty()) {
+ public String getRemappedFilename(boolean withClassifier) {
+ if (!hasClassifier() || !withClassifier) {
return String.format("%s-%s", name, version);
}
- return String.format("%s-%s@%s", name, version, classifier.replace(':', '-'));
+ return String.format("%s-%s-%s", name, version, classifier);
}
- private File getRemappedDir() {
+ public File getRemappedDir() {
return new File(remapData.modStore, String.format("%s/%s/%s", getGroup().replace(".", "/"), name, version));
}
public File getRemappedOutput() {
- return new File(getRemappedDir(), getRemappedFilename() + ".jar");
+ return new File(getRemappedDir(), getRemappedFilename(true) + ".jar");
+ }
+
+ public File getRemappedOutput(String classifier) {
+ return new File(getRemappedDir(), getRemappedFilename(false) + "-" + classifier + ".jar");
}
private File getRemappedPom() {
- return new File(getRemappedOutput().getAbsolutePath().replace(".jar", ".pom"));
+ return new File(getRemappedDir(), String.format("%s-%s", name, version) + ".pom");
}
private String getGroup() {
@@ -135,7 +141,11 @@ public class ModDependencyInfo {
@Override
public String toString() {
- return String.format("%s:%s:%s:%s", group, name, version, classifier);
+ return getRemappedNotation();
+ }
+
+ public boolean hasClassifier() {
+ return classifier != null && !classifier.isEmpty();
}
public String getAccessWidener() throws IOException {