diff --git a/jfmod/src/main/kotlin/io/gitlab/jfronny/scripts/JfModExtension.kt b/jfmod/src/main/kotlin/io/gitlab/jfronny/scripts/JfModExtension.kt index a90e9df..a5e1211 100644 --- a/jfmod/src/main/kotlin/io/gitlab/jfronny/scripts/JfModExtension.kt +++ b/jfmod/src/main/kotlin/io/gitlab/jfronny/scripts/JfModExtension.kt @@ -23,6 +23,8 @@ interface JfModExtension: LomExtension { } fun isMod(proj: Project) = proj.extensions.findByName("jfModule") != null + fun isFabric(proj: Project) = (proj.extensions.findByName("lom") as? LomExtension)?.isFabric ?: false + fun isForge(proj: Project) = (proj.extensions.findByName("lom") as? LomExtension)?.isForge ?: false fun curseforge(closure: Action) = closure.execute(curseforge) fun modrinth(closure: Action) = closure.execute(modrinth) diff --git a/jfmod/src/main/kotlin/jfmod.module.gradle.kts b/jfmod/src/main/kotlin/jfmod.module.gradle.kts index f575062..9e0222c 100644 --- a/jfmod/src/main/kotlin/jfmod.module.gradle.kts +++ b/jfmod/src/main/kotlin/jfmod.module.gradle.kts @@ -1,6 +1,3 @@ -import gradle.kotlin.dsl.accessors._2b47c59e4bff1a1e15af40cb0a9df00c.modImplementation -import gradle.kotlin.dsl.accessors._2b47c59e4bff1a1e15af40cb0a9df00c.modLocalRuntime -import gradle.kotlin.dsl.accessors._2b47c59e4bff1a1e15af40cb0a9df00c.versionCatalogs import io.gitlab.jfronny.scripts.* import org.gradle.api.internal.project.ProjectStateInternal import org.gradle.api.tasks.compile.JavaCompile @@ -13,9 +10,10 @@ plugins { } val args = extensions.create("jfModule") +val lomArgs: LomExtension by extensions val isRoot = project == rootProject -val rootArgs get() = rootProject.extensions.getByName("jfMod") +val rootArgs: JfModExtension by rootProject.extensions insertEarlyAfterEvaluate { args.check(project) @@ -52,10 +50,6 @@ insertEarlyAfterEvaluate { } } -versionCatalogs { - -} - fun Project.pAfterEvaluate(action: (Project) -> Unit) = if ((this.state as ProjectStateInternal).hasCompleted()) action(this) else afterEvaluate { action(this) } @@ -64,19 +58,22 @@ afterEvaluate { rootProject.allprojects.forEach { it.pAfterEvaluate { sub -> if (sub != this && rootArgs.isMod(sub)) { - loom { - mods { - register(sub.name) { - sourceSet(sub.sourceSets.main.get()) - sourceSet(sub.sourceSets.client.get()) - } - if (!sourceSets.testmod.get().resources.isEmpty) { - register("${sub.name}-testmod") { - sourceSet(sub.sourceSets.testmod.get()) + if (rootArgs.isFabric(sub) && lomArgs.isFabric) { + loom { + mods { + register(sub.name) { + sourceSet(sub.sourceSets.main.get()) + sourceSet(sub.sourceSets.client.get()) + } + if (!sourceSets.testmod.get().resources.isEmpty) { + register("${sub.name}-testmod") { + sourceSet(sub.sourceSets.testmod.get()) + } } } } } + //TODO handle forge } } } @@ -97,11 +94,14 @@ afterEvaluate { } if (!isRoot) rootProject.dependencies { - api(project(path = project.path, configuration = "shadow")) - clientImplementation(sourceSets.client.get().output) - testmodImplementation(sourceSets.testmod.get().output) + if (rootArgs.isFabric && lomArgs.isFabric) { + api(project(path = project.path, configuration = "shadow")) + clientImplementation(sourceSets.client.get().output) + testmodImplementation(sourceSets.testmod.get().output) - if (!devOnly) include(project) + if (!devOnly) include(project) + } + //TODO handle forge } } diff --git a/lom/src/main/kotlin/io/gitlab/jfronny/scripts/LomExt.kt b/lom/src/main/kotlin/io/gitlab/jfronny/scripts/LomExt.kt index c63a07a..d424f9c 100644 --- a/lom/src/main/kotlin/io/gitlab/jfronny/scripts/LomExt.kt +++ b/lom/src/main/kotlin/io/gitlab/jfronny/scripts/LomExt.kt @@ -21,3 +21,6 @@ val TaskContainer.genCommonSources get() = named("genCommonSources" val TaskContainer.sourcesJar get() = named("sourcesJar") fun DependencyHandler.devProject(path: String): Dependency = project(path, "dev") + +val LomExtension.isFabric: Boolean get() = fabricLoaderVersion.isPresent +val LomExtension.isForge: Boolean get() = neoforgeVersion.isPresent \ No newline at end of file