mirror of
https://github.com/architectury/architectury-loom.git
synced 2026-03-30 13:05:27 -05:00
Add getClientOnlySourceSetName (#770)
This commit is contained in:
@@ -51,6 +51,8 @@ import org.gradle.api.tasks.Input;
|
||||
import org.gradle.api.tasks.InputFile;
|
||||
import org.gradle.api.tasks.InputFiles;
|
||||
import org.gradle.api.tasks.Internal;
|
||||
import org.gradle.api.tasks.Optional;
|
||||
import org.gradle.api.tasks.SourceSet;
|
||||
import org.gradle.build.event.BuildEventsListenerRegistry;
|
||||
import org.gradle.jvm.tasks.Jar;
|
||||
import org.gradle.workers.WorkAction;
|
||||
@@ -64,6 +66,7 @@ import net.fabricmc.loom.api.mappings.layered.MappingsNamespace;
|
||||
import net.fabricmc.loom.task.service.JarManifestService;
|
||||
import net.fabricmc.loom.util.ZipReprocessorUtil;
|
||||
import net.fabricmc.loom.util.ZipUtils;
|
||||
import net.fabricmc.loom.util.gradle.SourceSetHelper;
|
||||
|
||||
public abstract class AbstractRemapJarTask extends Jar {
|
||||
public static final String MANIFEST_PATH = "META-INF/MANIFEST.MF";
|
||||
@@ -103,6 +106,10 @@ public abstract class AbstractRemapJarTask extends Jar {
|
||||
@Input
|
||||
public abstract ListProperty<String> getAdditionalClientOnlyEntries();
|
||||
|
||||
@Input
|
||||
@Optional
|
||||
public abstract Property<String> getClientOnlySourceSetName();
|
||||
|
||||
private final Provider<JarManifestService> jarManifestServiceProvider;
|
||||
|
||||
@Inject
|
||||
@@ -132,7 +139,7 @@ public abstract class AbstractRemapJarTask extends Jar {
|
||||
params.getJarManifestService().set(jarManifestServiceProvider);
|
||||
|
||||
if (getIncludesClientOnlyClasses().get()) {
|
||||
final List<String> clientOnlyEntries = new ArrayList<>(getClientOnlyEntries());
|
||||
final List<String> clientOnlyEntries = new ArrayList<>(getClientOnlyEntries(getClientSourceSet()));
|
||||
clientOnlyEntries.addAll(getAdditionalClientOnlyEntries().get());
|
||||
applyClientOnlyManifestAttributes(params, clientOnlyEntries);
|
||||
params.getClientOnlyEntries().set(clientOnlyEntries.stream().filter(s -> s.endsWith(".class")).toList());
|
||||
@@ -142,8 +149,7 @@ public abstract class AbstractRemapJarTask extends Jar {
|
||||
});
|
||||
}
|
||||
|
||||
@Internal
|
||||
protected abstract List<String> getClientOnlyEntries();
|
||||
protected abstract List<String> getClientOnlyEntries(SourceSet sourceSet);
|
||||
|
||||
public interface AbstractRemapParams extends WorkParameters {
|
||||
RegularFileProperty getInputFile();
|
||||
@@ -241,4 +247,9 @@ public abstract class AbstractRemapJarTask extends Jar {
|
||||
protected LoomGradleExtension getLoomExtension() {
|
||||
return LoomGradleExtension.get(getProject());
|
||||
}
|
||||
|
||||
private SourceSet getClientSourceSet() {
|
||||
Preconditions.checkArgument(LoomGradleExtension.get(getProject()).areEnvironmentSourceSetsSplit(), "Cannot get client sourceset as project is not split");
|
||||
return SourceSetHelper.getSourceSetByName(getClientOnlySourceSetName().get(), getProject());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user