mirror of
https://github.com/Minestom/Minestom.git
synced 2024-11-05 10:20:42 +01:00
193 lines
5.7 KiB
Groovy
193 lines
5.7 KiB
Groovy
import org.gradle.internal.os.OperatingSystem
|
|
|
|
plugins {
|
|
id 'java-library'
|
|
id 'java'
|
|
id 'maven-publish'
|
|
id 'net.ltgt.apt' version '0.10'
|
|
id 'org.jetbrains.kotlin.jvm' version '1.4.21'
|
|
id 'checkstyle'
|
|
}
|
|
|
|
group 'net.minestom.server'
|
|
version '1.0'
|
|
|
|
sourceCompatibility = 1.11
|
|
project.ext.lwjglVersion = "3.2.3"
|
|
|
|
switch (OperatingSystem.current()) {
|
|
case OperatingSystem.LINUX:
|
|
def osArch = System.getProperty("os.arch")
|
|
project.ext.lwjglNatives = osArch.startsWith("arm") || osArch.startsWith("aarch64")
|
|
? "natives-linux-${osArch.contains("64") || osArch.startsWith("armv8") ? "arm64" : "arm32"}"
|
|
: "natives-linux"
|
|
break
|
|
case OperatingSystem.MAC_OS:
|
|
project.ext.lwjglNatives = "natives-macos"
|
|
break
|
|
case OperatingSystem.WINDOWS:
|
|
project.ext.lwjglNatives = System.getProperty("os.arch").contains("64") ? "natives-windows" : "natives-windows-x86"
|
|
break
|
|
}
|
|
|
|
allprojects {
|
|
repositories {
|
|
mavenCentral()
|
|
maven { url 'https://libraries.minecraft.net' }
|
|
maven { url 'https://jitpack.io' }
|
|
maven {
|
|
name 'sponge'
|
|
url 'https://repo.spongepowered.org/maven'
|
|
}
|
|
}
|
|
javadoc {
|
|
options {
|
|
destinationDir(file("docs"))
|
|
addBooleanOption('html5', true)
|
|
}
|
|
}
|
|
|
|
checkstyle {
|
|
toolVersion "8.37"
|
|
configFile file("${projectDir}/minestom_checks.xml")
|
|
}
|
|
}
|
|
|
|
sourceSets {
|
|
main {
|
|
java {
|
|
srcDir 'src/main/java'
|
|
srcDir 'src/autogenerated/java'
|
|
}
|
|
}
|
|
generators {
|
|
java {
|
|
srcDir 'src/generators/java'
|
|
}
|
|
|
|
compileClasspath += sourceSets.main.runtimeClasspath
|
|
runtimeClasspath += sourceSets.main.runtimeClasspath
|
|
}
|
|
lwjgl {
|
|
java {
|
|
srcDir 'src/lwjgl/java'
|
|
}
|
|
|
|
compileClasspath += sourceSets.main.runtimeClasspath
|
|
runtimeClasspath += sourceSets.main.runtimeClasspath
|
|
}
|
|
}
|
|
|
|
java {
|
|
// Minestom uses LWJGL libs as optional dependency if interfacing with a GPU is asked
|
|
registerFeature("lwjgl") {
|
|
usingSourceSet(sourceSets.lwjgl)
|
|
withJavadocJar()
|
|
withSourcesJar()
|
|
}
|
|
|
|
registerFeature("generators") {
|
|
usingSourceSet(sourceSets.generators)
|
|
withJavadocJar()
|
|
withSourcesJar()
|
|
}
|
|
|
|
withJavadocJar()
|
|
withSourcesJar()
|
|
}
|
|
|
|
test {
|
|
useJUnitPlatform()
|
|
}
|
|
|
|
dependencies {
|
|
// Junit Testing Framework
|
|
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.6.2'
|
|
testRuntimeOnly('org.junit.jupiter:junit-jupiter-engine:5.6.2')
|
|
|
|
// Only here to ensure J9 module support for extensions and our classloaders
|
|
testCompileOnly "org.mockito:mockito-core:2.28.2"
|
|
|
|
// Netty
|
|
api 'io.netty:netty-handler:4.1.59.Final'
|
|
api 'io.netty:netty-codec:4.1.59.Final'
|
|
api 'io.netty:netty-transport-native-epoll:4.1.59.Final:linux-x86_64'
|
|
api 'io.netty:netty-transport-native-kqueue:4.1.59.Final:osx-x86_64'
|
|
api 'io.netty.incubator:netty-incubator-transport-native-io_uring:0.0.4.Final:linux-x86_64'
|
|
|
|
// https://mvnrepository.com/artifact/org.apache.commons/commons-text
|
|
compile group: 'org.apache.commons', name: 'commons-text', version: '1.9'
|
|
|
|
// https://mvnrepository.com/artifact/it.unimi.dsi/fastutil
|
|
api 'it.unimi.dsi:fastutil:8.5.2'
|
|
|
|
// https://mvnrepository.com/artifact/com.google.code.gson/gson
|
|
api 'com.google.code.gson:gson:2.8.6'
|
|
|
|
// Noise library for terrain generation
|
|
// https://jitpack.io/#Articdive/Jnoise
|
|
api 'com.github.Articdive:Jnoise:1.0.0'
|
|
|
|
// https://mvnrepository.com/artifact/org.rocksdb/rocksdbjni
|
|
api 'org.rocksdb:rocksdbjni:6.15.2'
|
|
|
|
// Logging
|
|
api 'org.apache.logging.log4j:log4j-core:2.14.0'
|
|
// SLF4J is the base logger for most libraries, therefore we can hook it into log4j2.
|
|
api 'org.apache.logging.log4j:log4j-slf4j-impl:2.14.0'
|
|
|
|
// Guava 21.0+ required for Mixin, but Authlib imports 17.0
|
|
api 'com.google.guava:guava:21.0'
|
|
api 'com.mojang:authlib:1.5.21'
|
|
|
|
// Code modification
|
|
api "org.ow2.asm:asm:${asmVersion}"
|
|
api "org.ow2.asm:asm-tree:${asmVersion}"
|
|
api "org.ow2.asm:asm-analysis:${asmVersion}"
|
|
api "org.ow2.asm:asm-util:${asmVersion}"
|
|
api "org.ow2.asm:asm-commons:${asmVersion}"
|
|
api "org.spongepowered:mixin:${mixinVersion}"
|
|
|
|
// Path finding
|
|
api 'com.github.MadMartian:hydrazine-path-finding:1.5.4'
|
|
|
|
api "org.jetbrains.kotlin:kotlin-stdlib-jdk8:${project.kotlinVersion}"
|
|
api "org.jetbrains.kotlin:kotlin-reflect:${project.kotlinVersion}"
|
|
|
|
// NBT parsing/manipulation/saving
|
|
api("com.github.jglrxavpok:Hephaistos:${project.hephaistosVersion}")
|
|
api("com.github.jglrxavpok:Hephaistos:${project.hephaistosVersion}:gson")
|
|
api("com.github.jglrxavpok:Hephaistos:${project.hephaistosVersion}") {
|
|
capabilities {
|
|
requireCapability("org.jglrxavpok.nbt:Hephaistos-gson")
|
|
}
|
|
}
|
|
|
|
api "com.github.Minestom:DependencyGetter:v1.0.1"
|
|
|
|
// LWJGL, for map rendering
|
|
lwjglApi platform("org.lwjgl:lwjgl-bom:$lwjglVersion")
|
|
|
|
lwjglApi "org.lwjgl:lwjgl"
|
|
lwjglApi "org.lwjgl:lwjgl-egl"
|
|
lwjglApi "org.lwjgl:lwjgl-opengl"
|
|
lwjglApi "org.lwjgl:lwjgl-opengles"
|
|
lwjglApi "org.lwjgl:lwjgl-glfw"
|
|
lwjglApi "org.lwjgl:lwjgl-glfw"
|
|
lwjglApi 'org.joml:joml:1.9.25'
|
|
lwjglRuntimeOnly "org.lwjgl:lwjgl::$lwjglNatives"
|
|
lwjglRuntimeOnly "org.lwjgl:lwjgl-opengl::$lwjglNatives"
|
|
lwjglRuntimeOnly "org.lwjgl:lwjgl-opengles::$lwjglNatives"
|
|
lwjglRuntimeOnly "org.lwjgl:lwjgl-glfw::$lwjglNatives"
|
|
|
|
|
|
generatorsImplementation("com.squareup:javapoet:1.13.0")
|
|
}
|
|
|
|
publishing {
|
|
publications {
|
|
mavenJava(MavenPublication) {
|
|
from components.java
|
|
}
|
|
}
|
|
} |