Add getClientOnlySourceSetName (#770)

This commit is contained in:
modmuss50
2022-12-30 13:06:12 +00:00
committed by GitHub
parent e16d9b0fa2
commit 2c6d4d930f
4 changed files with 21 additions and 16 deletions

View File

@@ -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());
}
}