Files
2026-10-27 17:37:44 -04:00

124 lines
3.2 KiB
Groovy

import java.nio.file.Paths
plugins {
id 'fabric-loom' version "$loom_version"
id 'com.github.gmazzo.buildconfig' version "$buildconfig_version"
}
var USING_GIT = Paths.get(System.getProperty("user.dir")).resolve(".git").toFile().exists()
var GIT_HASH = execute("git rev-parse --short HEAD")
version = project.mod_version
group = project.maven_group
buildConfig {
buildConfigField(String, "NAME", project.mod_name)
buildConfigField(String, "GROUP", project.group)
buildConfigField(String, "VERSION", project.mod_version)
buildConfigField(String, "BUILD_TIME", "${new Date(System.currentTimeMillis()).format("MM/dd/yyyy HH:mm")}")
buildConfigField(Boolean, "USING_GIT", USING_GIT)
buildConfigField(String, "HASH", GIT_HASH)
buildConfigField(String, "BRANCH", "${execute("git branch --show-current")}")
packageName "${project.group}.util"
useJavaOutput()
generateAtSync = true
}
sourceSets.main.java.srcDirs += "build/gen/buildconfig/src/main"
base {
archivesName = "${project.archives_base_name}-${GIT_HASH}"
}
repositories {
mavenCentral()
maven {
url "https://jitpack.io"
}
maven {
name = "meteor-maven"
url = "https://maven.meteordev.org/releases"
}
}
loom {
accessWidenerPath = file("src/main/resources/nolongerhuman.accesswidener")
}
dependencies {
minecraft "com.mojang:minecraft:${project.minecraft_version}"
mappings loom.officialMojangMappings()
modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"
// Fabric API
modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
// Discord RPC / IPC
include implementation("meteordevelopment:discord-ipc:1.1")
include implementation("com.github.cattyngmd.catformat:catformat-core:${project.catformat_version}")
include modImplementation("com.github.cattyngmd.catformat:catformat-fabric:${project.catformat_version}")
}
processResources {
inputs.property "version", project.version
inputs.property "minecraft_version", project.minecraft_version
inputs.property "loader_version", project.loader_version
filteringCharset "UTF-8"
filesMatching("fabric.mod.json") {
expand "version": project.version,
"minecraft_version": project.minecraft_version,
"loader_version": project.loader_version
}
}
def targetJavaVersion = 21
tasks.withType(JavaCompile).configureEach {
it.options.encoding = "UTF-8"
if (targetJavaVersion >= 10 || JavaVersion.current().isJava10Compatible()) {
it.options.release = targetJavaVersion
}
}
java {
def javaVersion = JavaVersion.toVersion(targetJavaVersion)
if (JavaVersion.current() < javaVersion) {
toolchain.languageVersion = JavaLanguageVersion.of(targetJavaVersion)
}
withSourcesJar()
}
sourcesJar {
dependsOn(generateBuildConfig)
}
jar {
from("LICENSE") {
rename { "${it}_${archives_base_name}" }
}
}
tasks.withType(JavaCompile).configureEach {
dependsOn(generateBuildConfig)
}
def execute(String cmd) {
var output = providers.exec {
commandLine cmd.split(" ")
ignoreExitValue = true
}
return output.standardOutput.getAsText().getOrElse("nogit")
.replaceAll("\n", "")
}