Geyser/core/build.gradle.kts
Tim203 ed36adec56
Merge remote-tracking branch 'origin/master'
# Conflicts:
#	api/src/main/java/org/geysermc/geyser/api/GeyserApi.java
#	api/src/main/java/org/geysermc/geyser/api/command/Command.java
#	api/src/main/java/org/geysermc/geyser/api/command/CommandExecutor.java
#	api/src/main/java/org/geysermc/geyser/api/command/CommandSource.java
#	api/src/main/java/org/geysermc/geyser/api/connection/GeyserConnection.java
#	api/src/main/java/org/geysermc/geyser/api/event/EventBus.java
#	api/src/main/java/org/geysermc/geyser/api/event/EventRegistrar.java
#	api/src/main/java/org/geysermc/geyser/api/event/EventSubscriber.java
#	api/src/main/java/org/geysermc/geyser/api/event/ExtensionEventBus.java
#	api/src/main/java/org/geysermc/geyser/api/event/ExtensionEventSubscriber.java
#	api/src/main/java/org/geysermc/geyser/api/event/connection/ConnectionEvent.java
#	api/src/main/java/org/geysermc/geyser/api/event/downstream/ServerDefineCommandsEvent.java
#	api/src/main/java/org/geysermc/geyser/api/event/lifecycle/GeyserDefineCommandsEvent.java
#	api/src/main/java/org/geysermc/geyser/api/event/lifecycle/GeyserDefineCustomItemsEvent.java
#	api/src/main/java/org/geysermc/geyser/api/event/lifecycle/GeyserLoadResourcePacksEvent.java
#	api/src/main/java/org/geysermc/geyser/api/event/lifecycle/GeyserPostInitializeEvent.java
#	api/src/main/java/org/geysermc/geyser/api/event/lifecycle/GeyserPreInitializeEvent.java
#	api/src/main/java/org/geysermc/geyser/api/event/lifecycle/GeyserShutdownEvent.java
#	api/src/main/java/org/geysermc/geyser/api/extension/Extension.java
#	api/src/main/java/org/geysermc/geyser/api/extension/ExtensionDescription.java
#	api/src/main/java/org/geysermc/geyser/api/extension/ExtensionLoader.java
#	api/src/main/java/org/geysermc/geyser/api/extension/ExtensionLogger.java
#	api/src/main/java/org/geysermc/geyser/api/extension/ExtensionManager.java
#	api/src/main/java/org/geysermc/geyser/api/extension/exception/InvalidDescriptionException.java
#	api/src/main/java/org/geysermc/geyser/api/extension/exception/InvalidExtensionException.java
#	api/src/main/java/org/geysermc/geyser/api/item/custom/CustomItemData.java
#	api/src/main/java/org/geysermc/geyser/api/item/custom/CustomItemOptions.java
#	api/src/main/java/org/geysermc/geyser/api/item/custom/CustomRenderOffsets.java
#	api/src/main/java/org/geysermc/geyser/api/item/custom/NonVanillaCustomItemData.java
#	api/src/main/java/org/geysermc/geyser/api/network/AuthType.java
#	api/src/main/java/org/geysermc/geyser/api/network/BedrockListener.java
#	api/src/main/java/org/geysermc/geyser/api/network/RemoteServer.java
#	api/src/main/java/org/geysermc/geyser/api/util/TriState.java
#	core/build.gradle.kts
#	gradle/libs.versions.toml
#	settings.gradle.kts
2023-02-09 17:34:27 +01:00

131 lines
4 KiB
Text

import net.kyori.blossom.BlossomExtension
plugins {
id("net.kyori.blossom")
id("net.kyori.indra.git")
id("geyser.publish-conventions")
}
dependencies {
api(projects.common)
api(projects.api)
// Jackson JSON and YAML serialization
api(libs.bundles.jackson)
api(libs.guava)
// Fastutil Maps
implementation(libs.bundles.fastutil)
// Network libraries
implementation(libs.websocket)
api(libs.protocol) {
exclude("com.nukkitx.network", "raknet")
}
api(libs.mcauthlib)
api(libs.mcprotocollib) {
exclude("io.netty", "netty-all")
exclude("com.github.GeyserMC", "packetlib")
exclude("com.github.GeyserMC", "mcauthlib")
}
api(libs.packetlib) {
exclude("io.netty", "netty-all")
}
implementation(libs.raknet) {
exclude("io.netty", "*");
}
implementation(libs.netty.resolver.dns)
implementation(libs.netty.resolver.dns.native.macos) { artifact { classifier = "osx-x86_64" } }
implementation(libs.netty.codec.haproxy)
// Network dependencies we are updating ourselves
api(libs.netty.handler)
implementation(libs.netty.transport.native.epoll) { artifact { classifier = "linux-x86_64" } }
implementation(libs.netty.transport.native.epoll) { artifact { classifier = "linux-aarch_64" } }
implementation(libs.netty.transport.native.kqueue) { artifact { classifier = "osx-x86_64" } }
// Adventure text serialization
api(libs.bundles.adventure)
// Test
testImplementation(libs.junit)
// Annotation Processors
compileOnly(projects.ap)
annotationProcessor(projects.ap)
}
configurations.api {
// This is still experimental - additionally, it could only really benefit standalone
exclude(group = "io.netty.incubator", module = "netty-incubator-transport-native-io_uring")
}
tasks.processResources {
// This is solely for backwards compatibility for other programs that used this file before the switch to gradle.
// It used to be generated by the maven Git-Commit-Id-Plugin
filesMatching("git.properties") {
val info = GitInfo()
expand(
"branch" to info.branch,
"buildNumber" to info.buildNumber,
"projectVersion" to project.version,
"commit" to info.commit,
"commitAbbrev" to info.commitAbbrev,
"commitMessage" to info.commitMessage,
"repository" to info.repository
)
}
}
configure<BlossomExtension> {
val mainFile = "src/main/java/org/geysermc/geyser/GeyserImpl.java"
val info = GitInfo()
replaceToken("\${version}", "${project.version} (${info.gitVersion})", mainFile)
replaceToken("\${gitVersion}", info.gitVersion, mainFile)
replaceToken("\${buildNumber}", info.buildNumber, mainFile)
replaceToken("\${branch}", info.branch, mainFile)
replaceToken("\${commit}", info.commit, mainFile)
replaceToken("\${repository}", info.repository, mainFile)
}
fun Project.buildNumber(): Int =
System.getenv("BUILD_NUMBER")?.let { Integer.parseInt(it) } ?: -1
inner class GitInfo {
val branch: String
val commit: String
val commitAbbrev: String
val gitVersion: String
val version: String
val buildNumber: Int
val commitMessage: String
val repository: String
init {
// On Jenkins, a detached head is checked out, so indra cannot determine the branch.
// Fortunately, this environment variable is available.
branch = indraGit.branchName() ?: System.getenv("BRANCH_NAME") ?: "DEV"
val commit = indraGit.commit()
this.commit = commit?.name ?: "0".repeat(40)
commitAbbrev = commit?.name?.substring(0, 7) ?: "0".repeat(7)
gitVersion = "git-${branch}-${commitAbbrev}"
version = "${project.version} ($gitVersion)"
buildNumber = buildNumber()
val git = indraGit.git()
commitMessage = git?.commit()?.message ?: ""
repository = git?.repository?.config?.getString("remote", "origin", "url") ?: ""
}
}