Open-source multiplayer game server compatible with the RuneScape client
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
openrs2/all/build.gradle.kts

125 lines
3.3 KiB

import com.github.jk1.license.render.TextReportRenderer
import java.nio.file.Files
plugins {
`maven-publish`
application
alias(libs.plugins.dependencyLicenseReport)
alias(libs.plugins.shadow)
kotlin("jvm")
}
application {
applicationName = "openrs2"
mainClass.set("org.openrs2.CommandKt")
}
dependencies {
implementation(projects.archive)
implementation(projects.bufferGenerator)
implementation(projects.cacheCli)
implementation(projects.compressCli)
implementation(projects.crc32)
implementation(projects.deob)
implementation(projects.game)
implementation(projects.log)
implementation(projects.patcher)
}
tasks.shadowJar {
archiveFileName.set("openrs2.jar")
minimize {
exclude(dependency("ch.qos.logback:logback-classic"))
exclude(dependency("com.github.jnr:jnr-ffi"))
exclude(dependency("org.flywaydb:flyway-core"))
exclude(dependency("org.jetbrains.kotlin:kotlin-reflect"))
}
}
tasks.register("generateAuthors") {
inputs.dir("$rootDir/.git")
outputs.file(layout.buildDirectory.file("AUTHORS"))
doLast {
Files.newOutputStream(layout.buildDirectory.file("AUTHORS").get().asFile.toPath()).use { out ->
exec {
commandLine("git", "shortlog", "-esn", "HEAD")
standardOutput = out
}.assertNormalExitValue()
}
}
}
licenseReport {
renderers = arrayOf(TextReportRenderer())
}
val distTasks = listOf(
"distTar",
"distZip",
"installDist"
)
configure(tasks.filter { it.name in distTasks }) {
enabled = false
}
val shadowDistTasks = listOf(
"installShadowDist",
"shadowDistTar",
"shadowDistZip"
)
configure(tasks.filter { it.name in shadowDistTasks }) {
dependsOn("generateAuthors", "generateLicenseReport")
}
distributions {
named("shadow") {
distributionBaseName.set("openrs2")
contents {
from(layout.buildDirectory.file("AUTHORS"))
from("$rootDir/CONTRIBUTING.md")
from("$rootDir/DCO")
from("$rootDir/LICENSE")
from("$rootDir/README.md")
from("$rootDir/etc/archive.example.yaml") {
rename { "archive.yaml" }
into("etc")
}
from("$rootDir/etc/config.example.yaml") {
rename { "config.yaml" }
into("etc")
}
from("$rootDir/share") {
exclude(".*", "*~")
into("share")
}
from(layout.buildDirectory.file("reports/dependency-license/THIRD-PARTY-NOTICES.txt")) {
rename { "third-party-licenses.txt" }
into("share/doc")
}
}
}
}
publishing {
publications.create<MavenPublication>("maven") {
artifactId = "openrs2"
setArtifacts(listOf(tasks.named("shadowDistZip").get()))
pom {
packaging = "zip"
name.set("OpenRS2")
description.set(
"""
OpenRS2 is an open-source multiplayer game server and suite of
associated tools. It is compatible with build 550 of the
RuneScape client, which was released in mid-2009.
""".trimIndent()
)
}
}
}