diff --git a/build.gradle.kts b/build.gradle.kts index c71e56d1..e6b4ddf8 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,4 +1,6 @@ import net.fabricmc.loom.LoomGradleExtension +import net.fabricmc.loom.api.RemapConfigurationSettings +import org.gradle.configurationcache.extensions.capitalized plugins { java @@ -72,6 +74,31 @@ afterEvaluate { } } +fun createAlternateRun(name: String): Configuration { + // create a run with the main project plus additional dependencies + val set = sourceSets.create(name) + set.compileClasspath += sourceSets.main.get().compileClasspath + set.runtimeClasspath += sourceSets.main.get().runtimeClasspath + dependencies.add(set.implementationConfigurationName, sourceSets.main.map { it.output}) + + val config = loom.addRemapConfiguration("mod${name.capitalized()}") { + sourceSet.set(set) + onCompileClasspath.set(false) + onRuntimeClasspath.set(true) + publishingMode.set(RemapConfigurationSettings.PublishingMode.NONE) + targetConfigurationName.set(set.implementationConfigurationName) + } + + loom.runConfigs.create(name + "Client") { + client() + source(set) + } + + return configurations.getByName(config.name) +} + +val canvas = createAlternateRun("canvas") +val iris = createAlternateRun("iris") val fabricApi by configurations.creating dependencies { minecraft(libs.minecraft)