aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2021-09-25 20:49:45 +0800
committershedaniel <daniel@shedaniel.me>2021-09-25 20:49:45 +0800
commitfd9694da3799462ca2c4ab651ea86e1601230d86 (patch)
tree19959b461d4a3006dad924ac20c3e6f2f499c74d
parent474232e4bdf41a0751adb7f1fcde1c56f6a05f5d (diff)
parent7d2dad6e4604c3ff0a8521ae1304ef664ebbfc27 (diff)
downloadarchitectury-loom-fd9694da3799462ca2c4ab651ea86e1601230d86.tar.gz
architectury-loom-fd9694da3799462ca2c4ab651ea86e1601230d86.tar.bz2
architectury-loom-fd9694da3799462ca2c4ab651ea86e1601230d86.zip
Merge remote-tracking branch 'FabricMC/dev/0.10' into dev/0.10.0
# Conflicts: # src/main/java/net/fabricmc/loom/task/RemapJarTask.java
-rw-r--r--src/main/java/net/fabricmc/loom/api/mappings/layered/spec/FileSpec.java38
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/RemapConfiguration.java4
-rw-r--r--src/main/java/net/fabricmc/loom/task/RemapJarTask.java28
-rw-r--r--src/main/java/net/fabricmc/loom/task/RunClientTask.java1
-rw-r--r--src/main/java/net/fabricmc/loom/task/RunServerTask.java1
5 files changed, 52 insertions, 20 deletions
diff --git a/src/main/java/net/fabricmc/loom/api/mappings/layered/spec/FileSpec.java b/src/main/java/net/fabricmc/loom/api/mappings/layered/spec/FileSpec.java
index 19129e5d..5af12f7d 100644
--- a/src/main/java/net/fabricmc/loom/api/mappings/layered/spec/FileSpec.java
+++ b/src/main/java/net/fabricmc/loom/api/mappings/layered/spec/FileSpec.java
@@ -29,7 +29,9 @@ import java.nio.file.Path;
import java.util.Objects;
import org.gradle.api.artifacts.Dependency;
+import org.gradle.api.file.FileSystemLocation;
import org.gradle.api.file.RegularFileProperty;
+import org.gradle.api.provider.Provider;
import org.jetbrains.annotations.ApiStatus;
import net.fabricmc.loom.api.mappings.layered.MappingContext;
@@ -42,17 +44,35 @@ import net.fabricmc.loom.configuration.providers.mappings.utils.MavenFileSpec;
*/
@ApiStatus.Experimental
public interface FileSpec {
+ /**
+ * Creates a file spec.
+ *
+ * <p>The parameter will be evaluated like this:
+ * <ul>
+ * <li>{@link File}, {@link Path} and {@link FileSystemLocation} will be resolved as local files</li>
+ * <li>{@link Provider} (including {@link org.gradle.api.provider.Property} will recursively be resolved as its current value</li>
+ * <li>{@link CharSequence} (including {@link String} and {@link groovy.lang.GString}) will be resolved as Maven dependencies</li>
+ * <li>{@link Dependency} will be resolved as any dependency</li>
+ * </ul>
+ *
+ * @param o the file notation
+ * @return the created file spec
+ */
static FileSpec create(Object o) {
Objects.requireNonNull(o, "Object cannot be null");
- if (o instanceof String s) {
- return createFromMavenDependency(s);
+ if (o instanceof CharSequence s) {
+ return createFromMavenDependency(s.toString());
} else if (o instanceof Dependency d) {
return createFromDependency(d);
+ } else if (o instanceof Provider<?> p) {
+ return create(p.get());
} else if (o instanceof File f) {
return createFromFile(f);
- } else if (o instanceof RegularFileProperty rfp) {
- return createFromFile(rfp);
+ } else if (o instanceof Path p) {
+ return createFromFile(p);
+ } else if (o instanceof FileSystemLocation l) {
+ return createFromFile(l);
}
throw new UnsupportedOperationException("Cannot create FileSpec from object of type:" + o.getClass().getCanonicalName());
@@ -70,9 +90,17 @@ public interface FileSpec {
return new LocalFileSpec(file);
}
+ static FileSpec createFromFile(FileSystemLocation location) {
+ return createFromFile(location.getAsFile());
+ }
+
+ static FileSpec createFromFile(Path path) {
+ return createFromFile(path.toFile());
+ }
+
// Note resolved instantly, this is not lazy
static FileSpec createFromFile(RegularFileProperty regularFileProperty) {
- return createFromFile(regularFileProperty.getAsFile().get());
+ return createFromFile(regularFileProperty.get());
}
Path get(MappingContext context);
diff --git a/src/main/java/net/fabricmc/loom/configuration/RemapConfiguration.java b/src/main/java/net/fabricmc/loom/configuration/RemapConfiguration.java
index dd235062..8a9180c2 100644
--- a/src/main/java/net/fabricmc/loom/configuration/RemapConfiguration.java
+++ b/src/main/java/net/fabricmc/loom/configuration/RemapConfiguration.java
@@ -129,8 +129,8 @@ public class RemapConfiguration {
if (isDefaultRemap) {
extension.getUnmappedModCollection().from(jarTask);
- remapJarTask.getAddNestedDependencies().set(true);
- remapJarTask.getRemapAccessWidener().set(true);
+ remapJarTask.getAddNestedDependencies().convention(true);
+ remapJarTask.getRemapAccessWidener().convention(true);
project.getArtifacts().add("archives", remapJarTask);
diff --git a/src/main/java/net/fabricmc/loom/task/RemapJarTask.java b/src/main/java/net/fabricmc/loom/task/RemapJarTask.java
index 722df40d..c63b4a7e 100644
--- a/src/main/java/net/fabricmc/loom/task/RemapJarTask.java
+++ b/src/main/java/net/fabricmc/loom/task/RemapJarTask.java
@@ -128,20 +128,22 @@ public class RemapJarTask extends Jar {
public RemapJarTask() {
super();
+ LoomGradleExtension extension = LoomGradleExtension.get(getProject());
input = getProject().getObjects().fileProperty();
- addNestedDependencies = getProject().getObjects().property(Boolean.class);
- addDefaultNestedDependencies = getProject().getObjects().property(Boolean.class);
- remapAccessWidener = getProject().getObjects().property(Boolean.class);
- fromM = getProject().getObjects().property(String.class);
- toM = getProject().getObjects().property(String.class);
- atAccessWideners = getProject().getObjects().setProperty(String.class).empty();
- fromM.set("named");
- toM.set(SourceRemapper.intermediary(getProject()));
- // false by default, I have no idea why I have to do it for this property and not the other one
- remapAccessWidener.set(false);
- addDefaultNestedDependencies.set(true);
-
- if (!LoomGradleExtension.get(getProject()).getMixin().getUseLegacyMixinAp().get()) {
+ addNestedDependencies = getProject().getObjects().property(Boolean.class)
+ .convention(false);
+ addDefaultNestedDependencies = getProject().getObjects().property(Boolean.class)
+ .convention(true);
+ remapAccessWidener = getProject().getObjects().property(Boolean.class)
+ .convention(false);
+ fromM = getProject().getObjects().property(String.class)
+ .convention("named");
+ toM = getProject().getObjects().property(String.class)
+ .convention(SourceRemapper.intermediary(getProject()));
+ atAccessWideners = getProject().getObjects().setProperty(String.class)
+ .empty();
+
+ if (!extension.getMixin().getUseLegacyMixinAp().get()) {
remapOptions.add(b -> b.extension(new MixinExtension()));
}
}
diff --git a/src/main/java/net/fabricmc/loom/task/RunClientTask.java b/src/main/java/net/fabricmc/loom/task/RunClientTask.java
index cfe50a05..4120dd82 100644
--- a/src/main/java/net/fabricmc/loom/task/RunClientTask.java
+++ b/src/main/java/net/fabricmc/loom/task/RunClientTask.java
@@ -34,5 +34,6 @@ public class RunClientTask extends AbstractRunTask {
LoomGradleExtension extension = LoomGradleExtension.get(project);
return RunConfig.runConfig(project, extension.getRunConfigs().getByName("client"));
});
+ LoomGradleExtension.get(getProject()).getDeprecationHelper().replaceWithInLoom0_11("RunClientTask", "RunGameTask");
}
}
diff --git a/src/main/java/net/fabricmc/loom/task/RunServerTask.java b/src/main/java/net/fabricmc/loom/task/RunServerTask.java
index 748d4180..635c5345 100644
--- a/src/main/java/net/fabricmc/loom/task/RunServerTask.java
+++ b/src/main/java/net/fabricmc/loom/task/RunServerTask.java
@@ -34,5 +34,6 @@ public class RunServerTask extends AbstractRunTask {
LoomGradleExtension extension = LoomGradleExtension.get(project);
return RunConfig.runConfig(project, extension.getRunConfigs().getByName("client"));
});
+ LoomGradleExtension.get(getProject()).getDeprecationHelper().replaceWithInLoom0_11("RunServerTask", "RunGameTask");
}
}