Inceptum/build.gradle.kts

90 lines
3.6 KiB
Plaintext

import org.ajoberstar.grgit.Grgit
import org.gradle.internal.os.OperatingSystem
plugins {
id("org.ajoberstar.grgit") version "5.0.0" apply false
}
var currentVer = "0.0.0+nogit"
if (File(".git").exists()) {
val grgit: Grgit = Grgit.open(mapOf("dir" to rootProject.projectDir.toString()))
currentVer = "0.0.0+notag"
val tagList = grgit.tag.list()
tagList.sortWith { left, right -> right.commit.dateTime.compareTo(left.commit.dateTime) }
if (tagList.isNotEmpty()) {
currentVer = tagList[0].name
}
}
val timestamp: Long = if (project.hasProperty("timestamp")) "${project.property("timestamp")}".toLong()
else (System.currentTimeMillis() / 1000L)
allprojects {
version = currentVer + if (project.hasProperty("release")) "" else "-$timestamp"
group = "io.gitlab.jfronny.inceptum"
}
println("Using Inceptum Build Script $version")
val lwjglVersion by extra("3.3.1")
val imguiVersion by extra("1.86.4")
val jfCommonsVersion by extra("2022.9.18+16-50-22")
val jlhttpVersion by extra("2.6")
val flavorProp: String by extra(if (project.hasProperty("flavor")) "${project.property("flavor")}" else "custom")
if (flavorProp != "custom" && flavorProp != "maven" && flavorProp != "fat" && flavorProp != "windows" && flavorProp != "linux" && flavorProp != "macos")
throw IllegalStateException("Unsupported flavor: $flavorProp")
val flavor: String by extra(
if (flavorProp != "custom") flavorProp else when (OperatingSystem.current()) {
OperatingSystem.WINDOWS -> "windows"
OperatingSystem.LINUX -> "linux"
OperatingSystem.MAC_OS -> "macos"
else -> throw IllegalStateException("Unsupported OS: ${OperatingSystem.current()}")
}
)
val isPublic by extra(project.hasProperty("public"))
val isRelease by extra(project.hasProperty("release"))
val wrapperVersion by extra(1)
tasks.register("exportMetadata") {
doLast {
projectDir.resolve("version.json").writeText(
"""
{
"wrapperVersion": $wrapperVersion,
"version": "$version",
"isPublic": $isPublic,
"isRelease": $isRelease,
"jvm": ${project(":common").extra["javaVersion"]},
"repositories": [
"https://repo.maven.apache.org/maven2/",
"https://gitlab.com/api/v4/projects/35745143/packages/maven"
],
"natives": {
"windows": [
"org.lwjgl:lwjgl:$lwjglVersion:natives-windows",
"org.lwjgl:lwjgl-opengl:$lwjglVersion:natives-windows",
"org.lwjgl:lwjgl-glfw:$lwjglVersion:natives-windows",
"org.lwjgl:lwjgl-tinyfd:$lwjglVersion:natives-windows",
"io.github.spair:imgui-java-natives-windows:$imguiVersion"
],
"linux": [
"org.lwjgl:lwjgl:$lwjglVersion:natives-linux",
"org.lwjgl:lwjgl-opengl:$lwjglVersion:natives-linux",
"org.lwjgl:lwjgl-glfw:$lwjglVersion:natives-linux",
"org.lwjgl:lwjgl-tinyfd:$lwjglVersion:natives-linux",
"io.github.spair:imgui-java-natives-linux:$imguiVersion"
],
"macos": [
"org.lwjgl:lwjgl:$lwjglVersion:natives-macos",
"org.lwjgl:lwjgl-opengl:$lwjglVersion:natives-macos",
"org.lwjgl:lwjgl-glfw:$lwjglVersion:natives-macos",
"org.lwjgl:lwjgl-tinyfd:$lwjglVersion:natives-macos",
"io.github.spair:imgui-java-natives-macos:$imguiVersion"
]
}
}
""".trimIndent()
)
}
}