diff options
Diffstat (limited to 'build.gradle.kts')
-rw-r--r-- | build.gradle.kts | 164 |
1 files changed, 29 insertions, 135 deletions
diff --git a/build.gradle.kts b/build.gradle.kts index 5ac39e7..4c6ee45 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,145 +1,39 @@ -import org.apache.commons.lang3.SystemUtils +import com.github.gmazzo.buildconfig.BuildConfigExtension +import java.io.ByteArrayOutputStream plugins { - idea - java - id("gg.essential.loom") version "0.10.0.+" - id("dev.architectury.architectury-pack200") version "0.1.3" - id("com.github.johnrengelman.shadow") version "8.1.1" - kotlin("jvm") version "2.0.20" + val kotlinVersion = "2.0.21" + kotlin("jvm") version kotlinVersion apply false + kotlin("plugin.serialization") version kotlinVersion apply false + id("com.github.gmazzo.buildconfig") version "5.5.0" apply false + id("ledger-globals") + id("com.google.devtools.ksp") version "2.0.21-1.0.26" apply false + id("com.github.johnrengelman.shadow") version "8.1.1" apply false } -val baseGroup: String by project -val mcVersion: String by project -val version: String by project -val mixinGroup = "$baseGroup.mixin" -val modid: String by project - -// Toolchains: -java { - toolchain.languageVersion.set(JavaLanguageVersion.of(8)) +allprojects { + apply(plugin = "ledger-globals") } -// Minecraft configuration: -loom { - log4jConfigs.from(file("log4j2.xml")) - launchConfigs { - "client" { - property("mixin.debug", "true") - arg("--tweakClass", "org.spongepowered.asm.launch.MixinTweaker") - arg("--tweakClass", "io.github.notenoughupdates.moulconfig.tweaker.DevelopmentResourceTweaker") - } +fun cmd(vararg args: String): String { + val baos = ByteArrayOutputStream() + exec { + standardOutput = baos + commandLine(*args) } - runConfigs { - "client" { - if (SystemUtils.IS_OS_MAC_OSX) { - // This argument causes a crash on macOS - vmArgs.remove("-XstartOnFirstThread") - } + return baos.toByteArray().decodeToString().trim() +} + +val gitVersion = cmd("git", "rev-parse", "--short", "HEAD") +val fullVersion = project.property("mod_version").toString() +val versionName: String = "$fullVersion-$gitVersion" +allprojects { + version = versionName + afterEvaluate { + configureIf<BuildConfigExtension> { + buildConfigField<String>("VERSION", versionName) + buildConfigField<String>("FULL_VERSION", fullVersion) + buildConfigField<String>("GIT_COMMIT", gitVersion) } - remove(getByName("server")) - } - forge { - pack200Provider.set(dev.architectury.pack200.java.Pack200Adapter()) - mixinConfig("mixins.$modid.json") } - mixin { - defaultRefmapName.set("mixins.$modid.refmap.json") - } -} - -tasks.compileJava { - dependsOn(tasks.processResources) -} - -sourceSets.main { - output.setResourcesDir(sourceSets.main.flatMap { it.java.classesDirectory }) - java.srcDir(layout.projectDirectory.dir("src/main/kotlin")) - kotlin.destinationDirectory.set(java.destinationDirectory) -} - -repositories { - mavenCentral() - maven("https://repo.spongepowered.org/maven/") - maven("https://maven.notenoughupdates.org/releases") - maven("https://pkgs.dev.azure.com/djtheredstoner/DevAuth/_packaging/public/maven/v1") -} - -val shadowImpl: Configuration by configurations.creating { - configurations.implementation.get().extendsFrom(this) -} - -dependencies { - minecraft("com.mojang:minecraft:1.8.9") - mappings("de.oceanlabs.mcp:mcp_stable:22-1.8.9") - forge("net.minecraftforge:forge:1.8.9-11.15.1.2318-1.8.9") - - shadowImpl(kotlin("stdlib-jdk8")) - - shadowImpl("org.spongepowered:mixin:0.7.11-SNAPSHOT") { - isTransitive = false - } - annotationProcessor("org.spongepowered:mixin:0.8.5-SNAPSHOT") - - shadowImpl("org.xerial:sqlite-jdbc:3.45.3.0") - shadowImpl("org.notenoughupdates.moulconfig:legacy:3.0.0-beta.9") - runtimeOnly("me.djtheredstoner:DevAuth-forge-legacy:1.1.2") - testImplementation("org.junit.jupiter:junit-jupiter:5.9.2") -} - -// Tasks: - -tasks.test { - useJUnitPlatform() } - -tasks.withType(JavaCompile::class) { - options.encoding = "UTF-8" -} - -tasks.withType(Jar::class) { - archiveBaseName.set(modid) - manifest.attributes.run { - this["FMLCorePluginContainsFMLMod"] = "true" - this["ForceLoadAsMod"] = "true" - - // If you don't want mixins, remove these lines - this["TweakClass"] = "org.spongepowered.asm.launch.MixinTweaker" - this["MixinConfigs"] = "mixins.$modid.json" - } -} - -tasks.processResources { - inputs.property("version", project.version) - inputs.property("mcversion", mcVersion) - inputs.property("modid", modid) - inputs.property("basePackage", baseGroup) - - filesMatching(listOf("mcmod.info", "mixins.$modid.json")) { - expand(inputs.properties) - } - - rename("(.+_at.cfg)", "META-INF/$1") -} - - -val remapJar by tasks.named<net.fabricmc.loom.task.RemapJarTask>("remapJar") { - archiveClassifier.set("") - from(tasks.shadowJar) - input.set(tasks.shadowJar.get().archiveFile) -} - -tasks.jar { - archiveClassifier.set("without-deps") - destinationDirectory.set(layout.buildDirectory.dir("badjars")) -} - -tasks.shadowJar { - destinationDirectory.set(layout.buildDirectory.dir("badjars")) - archiveClassifier.set("all-dev") - configurations = listOf(shadowImpl) - mergeServiceFiles() -} - -tasks.assemble.get().dependsOn(tasks.remapJar) - |