aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2021-09-11 04:54:58 +0800
committershedaniel <daniel@shedaniel.me>2021-09-11 04:54:58 +0800
commitaa4f1b107f7e554f751b588d1cccc935a8efbf63 (patch)
treea88fe782b3c7361cdb1c0aded0ff8828b0d8745e /src
parentd06081d560f3f75e7a9e558828a2ff72cdcde6d2 (diff)
downloadarchitectury-loom-aa4f1b107f7e554f751b588d1cccc935a8efbf63.tar.gz
architectury-loom-aa4f1b107f7e554f751b588d1cccc935a8efbf63.tar.bz2
architectury-loom-aa4f1b107f7e554f751b588d1cccc935a8efbf63.zip
Fix merge conflicts
Signed-off-by: shedaniel <daniel@shedaniel.me>
Diffstat (limited to 'src')
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/MavenPublication.java6
-rw-r--r--src/main/java/net/fabricmc/loom/extension/LoomGradleExtensionApiImpl.java3
-rw-r--r--src/main/java/net/fabricmc/loom/extension/MixinExtensionApiImpl.java4
-rw-r--r--src/main/java/net/fabricmc/loom/extension/MixinExtensionImpl.java2
-rw-r--r--src/main/java/net/fabricmc/loom/task/RemapJarTask.java20
-rw-r--r--src/main/java/net/fabricmc/loom/util/SourceRemapper.java36
-rw-r--r--src/test/groovy/net/fabricmc/loom/test/integration/forge/Aw2AtTest.groovy23
-rw-r--r--src/test/groovy/net/fabricmc/loom/test/integration/forge/LegacyAw2AtTest.groovy19
-rw-r--r--src/test/groovy/net/fabricmc/loom/test/util/ArchiveAssertionsTrait.groovy46
9 files changed, 96 insertions, 63 deletions
diff --git a/src/main/java/net/fabricmc/loom/configuration/MavenPublication.java b/src/main/java/net/fabricmc/loom/configuration/MavenPublication.java
index dbd37207..dcbc434a 100644
--- a/src/main/java/net/fabricmc/loom/configuration/MavenPublication.java
+++ b/src/main/java/net/fabricmc/loom/configuration/MavenPublication.java
@@ -69,7 +69,7 @@ public final class MavenPublication {
PublishingExtension mavenPublish = p.getExtensions().findByType(PublishingExtension.class);
if (mavenPublish != null) {
- p.getLogger().info("Processing maven publication for project [" + p.getName() + "] of " + entry.sourceConfiguration());
+ p.getLogger().info("Processing maven publication for project [" + p.getName() + "] of " + configurationName);
processEntry(project, scope, config, mavenPublish, reportedDeprecation);
}
});
@@ -118,11 +118,11 @@ public final class MavenPublication {
for (Dependency dependency : config.getAllDependencies()) {
if (foundArtifacts.contains(dependency.getGroup() + ":" + dependency.getName())) {
- logger.info("Found inserted artifact " + dependency.getGroup() + ":" + dependency.getName());
+ project.getLogger().info("Found inserted artifact " + dependency.getGroup() + ":" + dependency.getName());
continue;
}
- logger.info("Inserting artifact " + dependency.getGroup() + ":" + dependency.getName());
+ project.getLogger().info("Inserting artifact " + dependency.getGroup() + ":" + dependency.getName());
Node depNode = dependencies.appendNode("dependency");
depNode.appendNode("groupId", dependency.getGroup());
diff --git a/src/main/java/net/fabricmc/loom/extension/LoomGradleExtensionApiImpl.java b/src/main/java/net/fabricmc/loom/extension/LoomGradleExtensionApiImpl.java
index 66836071..c42246bf 100644
--- a/src/main/java/net/fabricmc/loom/extension/LoomGradleExtensionApiImpl.java
+++ b/src/main/java/net/fabricmc/loom/extension/LoomGradleExtensionApiImpl.java
@@ -53,9 +53,6 @@ import net.fabricmc.loom.api.LoomGradleExtensionAPI;
import net.fabricmc.loom.api.MixinExtensionAPI;
import net.fabricmc.loom.api.decompilers.LoomDecompiler;
import net.fabricmc.loom.api.ForgeExtensionAPI;
-import net.fabricmc.loom.api.LoomGradleExtensionAPI;
-import net.fabricmc.loom.api.MixinApExtensionAPI;
-import net.fabricmc.loom.api.decompilers.LoomDecompiler;
import net.fabricmc.loom.configuration.ide.RunConfig;
import net.fabricmc.loom.configuration.ide.RunConfigSettings;
import net.fabricmc.loom.configuration.mods.ModVersionParser;
diff --git a/src/main/java/net/fabricmc/loom/extension/MixinExtensionApiImpl.java b/src/main/java/net/fabricmc/loom/extension/MixinExtensionApiImpl.java
index e99eef26..66f3dfa1 100644
--- a/src/main/java/net/fabricmc/loom/extension/MixinExtensionApiImpl.java
+++ b/src/main/java/net/fabricmc/loom/extension/MixinExtensionApiImpl.java
@@ -35,6 +35,8 @@ import org.gradle.api.provider.Provider;
import org.gradle.api.tasks.SourceSet;
import org.gradle.api.tasks.util.PatternSet;
+import net.fabricmc.loom.LoomGradleExtension;
+import net.fabricmc.loom.api.LoomGradleExtensionAPI;
import net.fabricmc.loom.api.MixinExtensionAPI;
public abstract class MixinExtensionApiImpl implements MixinExtensionAPI {
@@ -44,7 +46,7 @@ public abstract class MixinExtensionApiImpl implements MixinExtensionAPI {
public MixinExtensionApiImpl(Project project) {
this.project = Objects.requireNonNull(project);
this.useMixinAp = project.getObjects().property(Boolean.class)
- .convention(false);
+ .convention(project.provider(() -> LoomGradleExtension.get(project).isForge()));
}
protected final PatternSet add0(SourceSet sourceSet, String refmapName) {
diff --git a/src/main/java/net/fabricmc/loom/extension/MixinExtensionImpl.java b/src/main/java/net/fabricmc/loom/extension/MixinExtensionImpl.java
index 224a98b8..a96c911a 100644
--- a/src/main/java/net/fabricmc/loom/extension/MixinExtensionImpl.java
+++ b/src/main/java/net/fabricmc/loom/extension/MixinExtensionImpl.java
@@ -70,7 +70,7 @@ public class MixinExtensionImpl extends MixinExtensionApiImpl implements MixinEx
String defaultRefmapName = project.getConvention().getPlugin(BasePluginConvention.class).getArchivesBaseName() + "-refmap.json";
if (project.getRootProject() != project) {
- defaultRefmapName = project.getConvention().getPlugin(BasePluginConvention.class).getArchivesBaseName() + "-" + getProject().getPath().replaceFirst(":", "").replace(':', '_') + "-refmap.json";
+ defaultRefmapName = project.getConvention().getPlugin(BasePluginConvention.class).getArchivesBaseName() + "-" + project.getPath().replaceFirst(":", "").replace(':', '_') + "-refmap.json";
}
project.getLogger().info("Could not find refmap definition, will be using default name: " + defaultRefmapName);
diff --git a/src/main/java/net/fabricmc/loom/task/RemapJarTask.java b/src/main/java/net/fabricmc/loom/task/RemapJarTask.java
index 3a8db01c..48b9e9bd 100644
--- a/src/main/java/net/fabricmc/loom/task/RemapJarTask.java
+++ b/src/main/java/net/fabricmc/loom/task/RemapJarTask.java
@@ -64,6 +64,7 @@ import dev.architectury.refmapremapper.remapper.SimpleReferenceRemapper;
import dev.architectury.tinyremapper.IMappingProvider;
import dev.architectury.tinyremapper.TinyRemapper;
import dev.architectury.tinyremapper.TinyUtils;
+import dev.architectury.tinyremapper.extension.mixin.MixinExtension;
import org.cadixdev.at.AccessTransformSet;
import org.cadixdev.at.io.AccessTransformFormats;
import org.gradle.api.Action;
@@ -108,9 +109,6 @@ import net.fabricmc.mapping.tree.FieldDef;
import net.fabricmc.mapping.tree.MethodDef;
import net.fabricmc.mapping.tree.TinyTree;
import net.fabricmc.stitch.util.Pair;
-import net.fabricmc.tinyremapper.TinyRemapper;
-import net.fabricmc.tinyremapper.TinyUtils;
-import net.fabricmc.tinyremapper.extension.mixin.MixinExtension;
public class RemapJarTask extends Jar {
private static final String MANIFEST_PATH = "META-INF/MANIFEST.MF";
@@ -296,14 +294,16 @@ public class RemapJarTask extends Jar {
if (MixinRefmapHelper.addRefmapName(project, output)) {
project.getLogger().debug("Transformed mixin reference maps in output JAR!");
}
- }
- if (!toM.equals("intermediary")) {
- try {
- remapRefmap(extension, output, "intermediary", toM);
- } catch (IOException e) {
- throw new RuntimeException("Failed to remap refmap jar", e);
+ if (!toM.equals("intermediary")) {
+ try {
+ remapRefmap(extension, output, "intermediary", toM);
+ } catch (IOException e) {
+ throw new RuntimeException("Failed to remap refmap jar", e);
+ }
}
+ } else if (extension.isForge()) {
+ throw new RuntimeException("Forge must have useLegacyMixinAp enabled");
}
if (getAddNestedDependencies().getOrElse(false)) {
@@ -346,7 +346,7 @@ public class RemapJarTask extends Jar {
private void remapRefmap(LoomGradleExtension extension, Path output, String from, String to) throws IOException {
try (FileSystem fs = FileSystems.newFileSystem(URI.create("jar:" + output.toUri()), ImmutableMap.of("create", false))) {
- Path refmapPath = fs.getPath(extension.getRefmapName());
+ Path refmapPath = fs.getPath(extension.getMixin().getDefaultRefmapName().get());
if (Files.exists(refmapPath)) {
try (Reader refmapReader = Files.newBufferedReader(refmapPath, StandardCharsets.UTF_8)) {
diff --git a/src/main/java/net/fabricmc/loom/util/SourceRemapper.java b/src/main/java/net/fabricmc/loom/util/SourceRemapper.java
index 9612a72a..2b2fa943 100644
--- a/src/main/java/net/fabricmc/loom/util/SourceRemapper.java
+++ b/src/main/java/net/fabricmc/loom/util/SourceRemapper.java
@@ -29,13 +29,10 @@ import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.ArrayList;
-import java.util.Deque;
-import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.function.Consumer;
-import com.google.common.base.Stopwatch;
import org.cadixdev.lorenz.MappingSet;
import org.cadixdev.mercury.Mercury;
import org.cadixdev.mercury.remapper.MercuryRemapper;
@@ -63,7 +60,7 @@ public class SourceRemapper {
}
public static String intermediary(Project project) {
- LoomGradleExtension extension = LoomGradleExtension.get(project);;
+ LoomGradleExtension extension = LoomGradleExtension.get(project);
return extension.isForge() ? "srg" : "intermediary";
}
@@ -195,8 +192,8 @@ public class SourceRemapper {
}
});
- Mercury mercury = extension.getOrCreateSrcMercuryCache(toNamed ? 1 : 0, () -> {
- Mercury m = createMercuryWithClassPath(project, toNamed);
+ Mercury mercury = extension.getOrCreateSrcMercuryCache(id, () -> {
+ Mercury m = createMercuryWithClassPath(project, to.equals("named"));
for (File file : extension.getUnmappedModCollection()) {
Path path = file.toPath();
@@ -209,6 +206,16 @@ public class SourceRemapper {
m.getClassPath().add(extension.getMinecraftMappedProvider().getMappedJar().toPath());
m.getClassPath().add(extension.getMinecraftMappedProvider().getIntermediaryJar().toPath());
+ if (extension.isForge()) {
+ m.getClassPath().add(extension.getMinecraftMappedProvider().getSrgJar().toPath());
+
+ if (extension.isForgeAndNotOfficial()) {
+ m.getClassPath().add(extension.getMinecraftMappedProvider().getForgeMappedJar().toPath());
+ m.getClassPath().add(extension.getMinecraftMappedProvider().getForgeIntermediaryJar().toPath());
+ m.getClassPath().add(extension.getMinecraftMappedProvider().getForgeSrgJar().toPath());
+ }
+ }
+
Set<File> files = project.getConfigurations()
.detachedConfiguration(project.getDependencies().create(Constants.Dependencies.JETBRAINS_ANNOTATIONS + Constants.Dependencies.Versions.JETBRAINS_ANNOTATIONS))
.resolve();
@@ -258,23 +265,6 @@ public class SourceRemapper {
m.getClassPath().add(inputFile.toPath());
}
}
-
- classpath.add(extension.getMinecraftMappedProvider().getMappedJar().toPath());
- classpath.add(extension.getMinecraftMappedProvider().getIntermediaryJar().toPath());
-
- if (extension.isForge()) {
- classpath.add(extension.getMinecraftMappedProvider().getSrgJar().toPath());
- classpath.add(extension.getMinecraftMappedProvider().getForgeMappedJar().toPath());
- classpath.add(extension.getMinecraftMappedProvider().getForgeIntermediaryJar().toPath());
- classpath.add(extension.getMinecraftMappedProvider().getForgeSrgJar().toPath());
- }
-
- Set<File> files = project.getConfigurations()
- .detachedConfiguration(project.getDependencies().create(Constants.Dependencies.JETBRAINS_ANNOTATIONS + Constants.Dependencies.Versions.JETBRAINS_ANNOTATIONS))
- .resolve();
-
- for (File file : files) {
- classpath.add(file.toPath());
}
return m;
diff --git a/src/test/groovy/net/fabricmc/loom/test/integration/forge/Aw2AtTest.groovy b/src/test/groovy/net/fabricmc/loom/test/integration/forge/Aw2AtTest.groovy
index fc7c016d..41993e61 100644
--- a/src/test/groovy/net/fabricmc/loom/test/integration/forge/Aw2AtTest.groovy
+++ b/src/test/groovy/net/fabricmc/loom/test/integration/forge/Aw2AtTest.groovy
@@ -25,23 +25,22 @@
package net.fabricmc.loom.test.integration.forge
import net.fabricmc.loom.test.util.ArchiveAssertionsTrait
-import net.fabricmc.loom.test.util.ProjectTestTrait
+import net.fabricmc.loom.test.util.GradleProjectTestTrait
import spock.lang.Specification
import static org.gradle.testkit.runner.TaskOutcome.SUCCESS
-class Aw2AtTest extends Specification implements ProjectTestTrait, ArchiveAssertionsTrait {
- @Override
- String name() {
- "forge/aw2At"
- }
-
+class Aw2AtTest extends Specification implements GradleProjectTestTrait, ArchiveAssertionsTrait {
def build() {
- when:
- def result = create("build", DEFAULT_GRADLE)
- then:
- result.task(":build").outcome == SUCCESS
- getArchiveEntry("fabric-example-mod-1.0.0.jar", "META-INF/accesstransformer.cfg") == expected().replaceAll('\r', '')
+ setup:
+ def gradle = gradleProject(project: "forge/aw2At", version: version)
+
+ when:
+ def result = gradle.run(task: "build")
+
+ then:
+ result.task(":build").outcome == SUCCESS
+ getArchiveEntry("fabric-example-mod-1.0.0.jar", "META-INF/accesstransformer.cfg") == expected().replaceAll('\r', '')
}
String expected() {
diff --git a/src/test/groovy/net/fabricmc/loom/test/integration/forge/LegacyAw2AtTest.groovy b/src/test/groovy/net/fabricmc/loom/test/integration/forge/LegacyAw2AtTest.groovy
index bdd9a5aa..4c40846b 100644
--- a/src/test/groovy/net/fabricmc/loom/test/integration/forge/LegacyAw2AtTest.groovy
+++ b/src/test/groovy/net/fabricmc/loom/test/integration/forge/LegacyAw2AtTest.groovy
@@ -25,23 +25,22 @@
package net.fabricmc.loom.test.integration.forge
import net.fabricmc.loom.test.util.ArchiveAssertionsTrait
-import net.fabricmc.loom.test.util.ProjectTestTrait
+import net.fabricmc.loom.test.util.GradleProjectTestTrait
import spock.lang.Specification
import static org.gradle.testkit.runner.TaskOutcome.SUCCESS
-class LegacyAw2AtTest extends Specification implements ProjectTestTrait, ArchiveAssertionsTrait {
- @Override
- String name() {
- "forge/legacyAw2At"
- }
-
+class LegacyAw2AtTest extends Specification implements GradleProjectTestTrait, ArchiveAssertionsTrait {
def build() {
+ setup:
+ def gradle = gradleProject(project: "forge/legacyAw2At", version: version)
+
when:
- def result = create("build", DEFAULT_GRADLE)
+ def result = gradle.run(task: "build")
+
then:
- result.task(":build").outcome == SUCCESS
- getArchiveEntry("fabric-example-mod-1.0.0.jar", "META-INF/accesstransformer.cfg") == expected().replaceAll('\r', '')
+ result.task(":build").outcome == SUCCESS
+ getArchiveEntry("fabric-example-mod-1.0.0.jar", "META-INF/accesstransformer.cfg") == expected().replaceAll('\r', '')
}
String expected() {
diff --git a/src/test/groovy/net/fabricmc/loom/test/util/ArchiveAssertionsTrait.groovy b/src/test/groovy/net/fabricmc/loom/test/util/ArchiveAssertionsTrait.groovy
new file mode 100644
index 00000000..4ba008c1
--- /dev/null
+++ b/src/test/groovy/net/fabricmc/loom/test/util/ArchiveAssertionsTrait.groovy
@@ -0,0 +1,46 @@
+/*
+ * This file is part of fabric-loom, licensed under the MIT License (MIT).
+ *
+ * Copyright (c) 2016-2021 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
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+package net.fabricmc.loom.test.util
+
+import org.zeroturnaround.zip.ZipUtil
+
+trait ArchiveAssertionsTrait {
+ String getArchiveEntry(String name, String entry, String project = "") {
+ def file = getOutputFile(name, project)
+
+ def bytes = ZipUtil.unpackEntry(file, entry)
+
+ if (bytes == null) {
+ throw new FileNotFoundException("Could not find ${entry} in ${name}")
+ }
+
+ new String(bytes as byte[])
+ }
+
+ boolean hasArchiveEntry(String name, String entry, String project = "") {
+ def file = getOutputFile(name, project)
+ ZipUtil.unpackEntry(file, entry) != null
+ }
+}