mirror of
https://github.com/architectury/architectury-loom.git
synced 2026-03-30 13:05:27 -05:00
Merge remote-tracking branch 'upstream/dev/0.11' into dev/0.11.0
# Conflicts: # src/main/java/net/fabricmc/loom/task/AbstractRemapJarTask.java # src/main/java/net/fabricmc/loom/task/RemapTaskConfiguration.java
This commit is contained in:
@@ -59,6 +59,12 @@ public abstract class AbstractRemapJarTask extends Jar {
|
||||
@Input
|
||||
public abstract Property<String> getTargetNamespace();
|
||||
|
||||
/**
|
||||
* When enabled the TinyRemapperService will not be shared across sub projects.
|
||||
*/
|
||||
@Input
|
||||
public abstract Property<Boolean> getRemapperIsolation();
|
||||
|
||||
@Inject
|
||||
protected abstract WorkerExecutor getWorkerExecutor();
|
||||
|
||||
@@ -66,6 +72,7 @@ public abstract class AbstractRemapJarTask extends Jar {
|
||||
public AbstractRemapJarTask() {
|
||||
getSourceNamespace().convention(MappingsNamespace.NAMED.toString()).finalizeValueOnRead();
|
||||
getTargetNamespace().convention(SourceRemapper.intermediary(getProject())).finalizeValueOnRead();
|
||||
getRemapperIsolation().convention(false).finalizeValueOnRead();
|
||||
}
|
||||
|
||||
public final <P extends AbstractRemapParams> void submitWork(Class<? extends AbstractRemapAction<P>> workAction, Action<P> action) {
|
||||
|
||||
@@ -84,18 +84,6 @@ public class RemapTaskConfiguration {
|
||||
|
||||
trySetupSourceRemapping(project);
|
||||
|
||||
if (extension.getSetupRemappedVariants().get()) {
|
||||
// Remove -dev jars from the default jar task
|
||||
for (String configurationName : new String[] { JavaPlugin.API_ELEMENTS_CONFIGURATION_NAME, JavaPlugin.RUNTIME_ELEMENTS_CONFIGURATION_NAME }) {
|
||||
Configuration configuration = project.getConfigurations().getByName(configurationName);
|
||||
final Task jarTask = project.getTasks().getByName(JavaPlugin.JAR_TASK_NAME);
|
||||
configuration.getArtifacts().removeIf(artifact -> {
|
||||
// if the artifact is a -dev jar and "builtBy jar"
|
||||
return "dev".equals(artifact.getClassifier()) && artifact.getBuildDependencies().getDependencies(null).contains(jarTask);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
project.afterEvaluate(p -> {
|
||||
if (extension.isForge()) {
|
||||
if (PropertyUtil.getAndFinalize(extension.getForge().getConvertAccessWideners())) {
|
||||
@@ -113,18 +101,34 @@ public class RemapTaskConfiguration {
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
if (!extension.getSetupRemappedVariants().get()) {
|
||||
return;
|
||||
}
|
||||
|
||||
project.afterEvaluate(p -> {
|
||||
// Remove -dev jars from the default jar task
|
||||
for (String configurationName : new String[] { JavaPlugin.API_ELEMENTS_CONFIGURATION_NAME, JavaPlugin.RUNTIME_ELEMENTS_CONFIGURATION_NAME }) {
|
||||
Configuration configuration = project.getConfigurations().getByName(configurationName);
|
||||
final Task jarTask = project.getTasks().getByName(JavaPlugin.JAR_TASK_NAME);
|
||||
configuration.getArtifacts().removeIf(artifact -> {
|
||||
// if the artifact is a -dev jar and "builtBy jar"
|
||||
return "dev".equals(artifact.getClassifier()) && artifact.getBuildDependencies().getDependencies(null).contains(jarTask);
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private static void trySetupSourceRemapping(Project project) {
|
||||
final TaskContainer tasks = project.getTasks();
|
||||
final LoomGradleExtension extension = LoomGradleExtension.get(project);
|
||||
final JavaPluginExtension javaExtension = project.getExtensions().getByType(JavaPluginExtension.class);
|
||||
final String sourcesJarTaskName = javaExtension.getSourceSets().getByName(SourceSet.MAIN_SOURCE_SET_NAME).getSourcesJarTaskName();
|
||||
|
||||
TaskProvider<RemapSourcesJarTask> remapSourcesTask = tasks.register(REMAP_SOURCES_JAR_TASK_NAME, RemapSourcesJarTask.class, task -> {
|
||||
task.setDescription("Remaps the default sources jar to intermediary mappings.");
|
||||
task.setGroup(Constants.TaskGroup.FABRIC);
|
||||
|
||||
final JavaPluginExtension javaExtension = project.getExtensions().getByType(JavaPluginExtension.class);
|
||||
final String sourcesJarTaskName = javaExtension.getSourceSets().getByName(SourceSet.MAIN_SOURCE_SET_NAME).getSourcesJarTaskName();
|
||||
final Task sourcesTask = project.getTasks().findByName(sourcesJarTaskName);
|
||||
|
||||
if (sourcesTask == null) {
|
||||
@@ -145,21 +149,31 @@ public class RemapTaskConfiguration {
|
||||
|
||||
task.dependsOn(sourcesJarTask);
|
||||
task.getInputFile().convention(sourcesJarTask.getArchiveFile());
|
||||
|
||||
if (extension.getSetupRemappedVariants().get()) {
|
||||
if (project.getConfigurations().getNames().contains(JavaPlugin.SOURCES_ELEMENTS_CONFIGURATION_NAME)) {
|
||||
project.getArtifacts().add(JavaPlugin.SOURCES_ELEMENTS_CONFIGURATION_NAME, task);
|
||||
|
||||
// Remove the dev sources artifact
|
||||
Configuration configuration = project.getConfigurations().getByName(JavaPlugin.SOURCES_ELEMENTS_CONFIGURATION_NAME);
|
||||
configuration.getArtifacts().removeIf(a -> a.getFile().equals(sourcesJarTask.getArchiveFile().get().getAsFile()));
|
||||
} else {
|
||||
// Sources jar may not have been created with withSourcesJar
|
||||
project.getLogger().warn("Not publishing sources jar as it was not found. Use java.withSourcesJar() to fix.");
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
tasks.named(BasePlugin.ASSEMBLE_TASK_NAME).configure(task -> task.dependsOn(remapSourcesTask));
|
||||
|
||||
if (!extension.getSetupRemappedVariants().get()) {
|
||||
return;
|
||||
}
|
||||
|
||||
project.afterEvaluate(p -> {
|
||||
final Task sourcesTask = project.getTasks().findByName(sourcesJarTaskName);
|
||||
|
||||
if (!(sourcesTask instanceof Jar sourcesJarTask)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (project.getConfigurations().getNames().contains(JavaPlugin.SOURCES_ELEMENTS_CONFIGURATION_NAME)) {
|
||||
project.getArtifacts().add(JavaPlugin.SOURCES_ELEMENTS_CONFIGURATION_NAME, remapSourcesTask);
|
||||
|
||||
// Remove the dev sources artifact
|
||||
Configuration configuration = project.getConfigurations().getByName(JavaPlugin.SOURCES_ELEMENTS_CONFIGURATION_NAME);
|
||||
configuration.getArtifacts().removeIf(a -> a.getFile().equals(sourcesJarTask.getArchiveFile().get().getAsFile()));
|
||||
} else {
|
||||
// Sources jar may not have been created with withSourcesJar
|
||||
project.getLogger().warn("Not publishing sources jar as it was not found. Use java.withSourcesJar() to fix.");
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,6 +33,7 @@ import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.StringJoiner;
|
||||
|
||||
import dev.architectury.tinyremapper.IMappingProvider;
|
||||
import dev.architectury.tinyremapper.InputTag;
|
||||
@@ -56,7 +57,19 @@ public class TinyRemapperService implements SharedService {
|
||||
final boolean useKotlinExtension = project.getPluginManager().hasPlugin("org.jetbrains.kotlin.jvm");
|
||||
|
||||
// Generates an id that is used to share the remapper across projects. This tasks in the remap jar task name to handle custom remap jar tasks separately.
|
||||
final String id = extension.getMappingsProvider().getBuildServiceName("remapJarService", from, to) + ":" + remapJarTask.getName() + (useKotlinExtension ? ":kotlin" : "");
|
||||
final var joiner = new StringJoiner(":");
|
||||
joiner.add(extension.getMappingsProvider().getBuildServiceName("remapJarService", from, to));
|
||||
joiner.add(remapJarTask.getName());
|
||||
|
||||
if (useKotlinExtension) {
|
||||
joiner.add("kotlin");
|
||||
}
|
||||
|
||||
if (remapJarTask.getRemapperIsolation().get()) {
|
||||
joiner.add(project.getPath());
|
||||
}
|
||||
|
||||
final String id = joiner.toString();
|
||||
|
||||
TinyRemapperService service = sharedServiceManager.getOrCreateService(id, () -> {
|
||||
List<IMappingProvider> mappings = new ArrayList<>();
|
||||
|
||||
Reference in New Issue
Block a user