Skip to content

Commit d3994cc

Browse files
committed
Ability to change the source set added to classpath
1 parent 049c2db commit d3994cc

File tree

3 files changed

+22
-18
lines changed

3 files changed

+22
-18
lines changed

subprojects/gradle-plugin/src/main/java/org/spongepowered/gradle/vanilla/VanillaGradle.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -106,13 +106,6 @@ private void applyToProject(final Project project) {
106106
c.extendsFrom(minecraftConfig.get());
107107
});
108108
});
109-
110-
project.afterEvaluate(p -> {
111-
final NamedDomainObjectProvider<SourceSet> mainSourceSet =
112-
p.getExtensions().getByType(SourceSetContainer.class).named(SourceSet.MAIN_SOURCE_SET_NAME);
113-
minecraft.getRuns().configureEach(
114-
run -> run.getClasspath().from(mainSourceSet.map(SourceSet::getOutput), mainSourceSet.map(SourceSet::getRuntimeClasspath)));
115-
});
116109
});
117110

118111
for (final String shadowPluginId : SHADOW_PLUGIN_IDS) {

subprojects/gradle-plugin/src/main/java/org/spongepowered/gradle/vanilla/internal/ProvideMinecraftPlugin.java

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,6 @@
5151
import org.gradle.api.provider.Provider;
5252
import org.gradle.api.tasks.Delete;
5353
import org.gradle.api.tasks.JavaExec;
54-
import org.gradle.api.tasks.SourceSet;
55-
import org.gradle.api.tasks.SourceSetContainer;
5654
import org.gradle.api.tasks.Sync;
5755
import org.gradle.api.tasks.TaskContainer;
5856
import org.gradle.api.tasks.TaskProvider;
@@ -73,7 +71,6 @@
7371
import org.spongepowered.gradle.vanilla.internal.util.StringUtils;
7472
import org.spongepowered.gradle.vanilla.repository.MinecraftPlatform;
7573
import org.spongepowered.gradle.vanilla.repository.MinecraftRepositoryExtension;
76-
import org.spongepowered.gradle.vanilla.repository.MinecraftSide;
7774
import org.spongepowered.gradle.vanilla.runs.ClientRunParameterTokens;
7875
import org.spongepowered.gradle.vanilla.task.DecompileJarTask;
7976
import org.spongepowered.gradle.vanilla.task.DownloadAssetsTask;
@@ -348,13 +345,7 @@ public void idea(final Project project, final IdeaModel idea, final ProjectSetti
348345
ideaRun.setWorkingDirectory(runDirectory.getAbsolutePath());
349346
runDirectory.mkdirs();
350347

351-
final SourceSet moduleSet;
352-
if (run.getIdeaRunSourceSet().isPresent()) {
353-
moduleSet = run.getIdeaRunSourceSet().get();
354-
} else {
355-
moduleSet = project.getExtensions().getByType(SourceSetContainer.class).getByName(SourceSet.MAIN_SOURCE_SET_NAME);
356-
}
357-
ideaRun.moduleRef(project, moduleSet);
348+
ideaRun.moduleRef(project, run.getIdeaRunSourceSet().orElse(run.getSourceSet()).get());
358349
ideaRun.setJvmArgs(StringUtils.join(run.getAllJvmArgumentProviders(), true));
359350
ideaRun.setProgramParameters(StringUtils.join(run.getAllArgumentProviders(), true));
360351
});

subprojects/gradle-plugin/src/main/java/org/spongepowered/gradle/vanilla/runs/RunConfiguration.java

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import org.checkerframework.checker.nullness.qual.NonNull;
2828
import org.gradle.api.Action;
2929
import org.gradle.api.Named;
30+
import org.gradle.api.Project;
3031
import org.gradle.api.file.ConfigurableFileCollection;
3132
import org.gradle.api.file.DirectoryProperty;
3233
import org.gradle.api.file.ProjectLayout;
@@ -38,6 +39,7 @@
3839
import org.gradle.api.tasks.Nested;
3940
import org.gradle.api.tasks.Optional;
4041
import org.gradle.api.tasks.SourceSet;
42+
import org.gradle.api.tasks.SourceSetContainer;
4143
import org.gradle.jvm.toolchain.JavaLanguageVersion;
4244
import org.gradle.process.CommandLineArgumentProvider;
4345
import org.spongepowered.gradle.vanilla.internal.Constants;
@@ -70,10 +72,11 @@ public class RunConfiguration implements Named {
7072
private final MapProperty<String, String> parameterTokens;
7173
private final Property<Boolean> requiresAssetsAndNatives;
7274
private final Property<SourceSet> ideaSourceSet;
75+
private final Property<SourceSet> sourceSet;
7376
private final Property<JavaLanguageVersion> targetVersion;
7477

7578
@Inject
76-
public RunConfiguration(final String name, final ProjectLayout layout, final ObjectFactory objects) {
79+
public RunConfiguration(final String name, final ProjectLayout layout, final ObjectFactory objects, final Project project) {
7780
this.name = name;
7881
this.displayName = objects.property(String.class);
7982

@@ -89,8 +92,12 @@ public RunConfiguration(final String name, final ProjectLayout layout, final Obj
8992
this.parameterTokens = objects.mapProperty(String.class, String.class);
9093
this.requiresAssetsAndNatives = objects.property(Boolean.class).convention(false);
9194
this.ideaSourceSet = objects.property(SourceSet.class);
95+
this.sourceSet = objects.property(SourceSet.class)
96+
.convention(project.getExtensions().getByType(SourceSetContainer.class).named(SourceSet.MAIN_SOURCE_SET_NAME));
9297
this.targetVersion = objects.property(JavaLanguageVersion.class);
9398

99+
this.classpath.from(this.sourceSet.map(SourceSet::getOutput), this.sourceSet.map(SourceSet::getRuntimeClasspath));
100+
94101
// Apply global environment here
95102
this.parameterTokens.put(ClientRunParameterTokens.LAUNCHER_NAME, Constants.NAME);
96103
this.parameterTokens.put(ClientRunParameterTokens.LAUNCHER_VERSION, Constants.VERSION);
@@ -156,13 +163,26 @@ public ConfigurableFileCollection getClasspath() {
156163
*
157164
* @return the source set to use
158165
* @since 0.2
166+
* @deprecated Use {@link #getSourceSet()} instead.
159167
*/
168+
@Deprecated
160169
@Input
161170
@Optional
162171
public Property<SourceSet> getIdeaRunSourceSet() {
163172
return this.ideaSourceSet;
164173
}
165174

175+
/**
176+
* Get the source set to use in the classpath and IDE runs.
177+
*
178+
* @return the source set to use
179+
* @since 0.2.1
180+
*/
181+
@Input
182+
public Property<SourceSet> getSourceSet() {
183+
return this.sourceSet;
184+
}
185+
166186
@Nested
167187
public List<CommandLineArgumentProvider> getAllArgumentProviders() {
168188
return this.allArgs;

0 commit comments

Comments
 (0)