90 lines
3.6 KiB
Plaintext
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()
|
|
)
|
|
}
|
|
} |