2022-10-07 16:03:38 +02:00
|
|
|
import io.gitlab.jfronny.scripts.*
|
2022-10-06 19:30:52 +02:00
|
|
|
|
|
|
|
plugins {
|
|
|
|
id("jf.autoversion")
|
|
|
|
id("jf.maven-publish")
|
|
|
|
id("lom")
|
|
|
|
}
|
|
|
|
|
|
|
|
//TODO test libjf-config-compiler-plugin integration
|
|
|
|
if (project.hasProperty("libjf_version")) {
|
|
|
|
buildscript {
|
|
|
|
repositories {
|
|
|
|
maven {
|
|
|
|
name = "JF Commons"
|
|
|
|
url = uri("https://gitlab.com/api/v4/projects/35745143/packages/maven")
|
|
|
|
}
|
|
|
|
maven {
|
|
|
|
name = "LibJF"
|
|
|
|
url = uri("https://gitlab.com/api/v4/projects/25805200/packages/maven")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
dependencies {
|
|
|
|
classpath("io.gitlab.jfronny.libjf:libjf-config-compiler-plugin:${prop("libjf_version")}")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
val devOnlyModules by extra(prop("dev_only_module", "").split(", ", ",").filter { it.isNotBlank() })
|
|
|
|
val nonModSubprojects by extra(prop("non_mod_project", "").split(", ", ",").filter { it.isNotBlank() })
|
|
|
|
val self = project
|
2022-10-07 17:10:31 +02:00
|
|
|
if (hasProperty("maven_group")) group = prop("maven_group")
|
2022-10-06 19:30:52 +02:00
|
|
|
|
|
|
|
allprojects {
|
|
|
|
if (name in nonModSubprojects) return@allprojects
|
|
|
|
|
|
|
|
group = self.group
|
|
|
|
version = self.version
|
|
|
|
|
|
|
|
apply(plugin = "jf.maven-publish")
|
|
|
|
apply(plugin = "lom")
|
|
|
|
if (self.hasProperty("libjf_version")) apply(plugin = "io.gitlab.jfronny.libjf.libjf-config-compiler-plugin")
|
|
|
|
|
|
|
|
base {
|
|
|
|
archivesName.set(prop("archives_base_name", archivesName.get()))
|
|
|
|
}
|
|
|
|
|
|
|
|
lom {
|
|
|
|
minecraftVersion.set(prop("minecraft_version"))
|
|
|
|
loaderVersion.set(prop("loader_version"))
|
|
|
|
if (hasProperty("yarn_mappings")) yarn(prop("yarn_mappings"))
|
|
|
|
else mojmap()
|
|
|
|
}
|
|
|
|
|
|
|
|
afterEvaluate {
|
|
|
|
self.allprojects.forEach { sub ->
|
|
|
|
if (sub != this && sub.name !in nonModSubprojects) {
|
|
|
|
loom {
|
|
|
|
mods {
|
|
|
|
register(sub.name) {
|
|
|
|
sourceSet(sub.sourceSets.main)
|
|
|
|
sourceSet(sub.sourceSets.client)
|
|
|
|
}
|
|
|
|
register("${sub.name}-testmod") {
|
|
|
|
sourceSet(sub.sourceSets.testmod)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
subprojects {
|
|
|
|
if (name in nonModSubprojects) return@subprojects
|
|
|
|
|
|
|
|
self.tasks.deployDebug.dependsOn(tasks.deployDebug)
|
|
|
|
self.tasks.deployRelease.dependsOn(tasks.deployRelease)
|
|
|
|
|
|
|
|
tasks.named("javadoc").get().enabled = false
|
|
|
|
|
|
|
|
afterEvaluate {
|
|
|
|
dependencies {
|
|
|
|
testmodImplementation(sourceSets.main.output)
|
|
|
|
}
|
|
|
|
|
|
|
|
tasks.genClientOnlySources.enabled = false
|
|
|
|
tasks.genCommonSources.enabled = false
|
|
|
|
tasks.unpickClientOnlyJar.enabled = false
|
|
|
|
tasks.unpickCommonJar.enabled = false
|
|
|
|
|
|
|
|
rootProject.dependencies {
|
|
|
|
api(project(mapOf("path" to project.path, "configuration" to "shadow")))
|
|
|
|
clientImplementation(sourceSets.client.output)
|
|
|
|
testmodImplementation(sourceSets.testmod.output)
|
|
|
|
|
|
|
|
if (name !in devOnlyModules) include(project)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (hasProperty("curseforge_id")) apply(plugin = "jfmod.curseforge")
|
|
|
|
if (hasProperty("modrinth_id")) apply(plugin = "jfmod.modrinth")
|