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() ) } }