Inceptum/build.gradle.kts
2022-10-13 19:37:35 +02:00

74 lines
3.0 KiB
Plaintext

import org.gradle.internal.os.OperatingSystem
plugins {
id("org.ajoberstar.grgit") version "5.0.0" apply false
id("jf.autoversion")
}
allprojects {
version = rootProject.version
group = "io.gitlab.jfronny.inceptum"
}
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()
)
}
}