diff options
author | shedaniel <daniel@shedaniel.me> | 2021-09-25 20:49:45 +0800 |
---|---|---|
committer | shedaniel <daniel@shedaniel.me> | 2021-09-25 20:49:45 +0800 |
commit | fd9694da3799462ca2c4ab651ea86e1601230d86 (patch) | |
tree | 19959b461d4a3006dad924ac20c3e6f2f499c74d | |
parent | 474232e4bdf41a0751adb7f1fcde1c56f6a05f5d (diff) | |
parent | 7d2dad6e4604c3ff0a8521ae1304ef664ebbfc27 (diff) | |
download | architectury-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
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"); } } |