import org.gradle.internal.os.OperatingSystem plugins { id 'java' id 'io.freefair.lombok' version "${pluginLombok}" } // Determine LWJGL native stuff switch (OperatingSystem.current()) { case OperatingSystem.LINUX: project.dependencyLwjglNatives = "natives-linux" def osArch = System.getProperty("os.arch") if (osArch.startsWith("arm") || osArch.startsWith("aarch64")) { project.dependencyLwjglNatives += osArch.contains("64") || osArch.startsWith("armv8") ? "-arm64" : "-arm32" } else if (osArch.startsWith("ppc")) { project.dependencyLwjglNatives += "-ppc64le" } else if (osArch.startsWith("riscv")) { project.dependencyLwjglNatives += "-riscv64" } break case OperatingSystem.MAC_OS: project.dependencyLwjglNatives = System.getProperty("os.arch").startsWith("aarch64") ? "natives-macos-arm64" : "natives-macos" break case OperatingSystem.WINDOWS: def osArch = System.getProperty("os.arch") project.dependencyLwjglNatives = osArch.contains("64") ? "natives-windows${osArch.startsWith("aarch64") ? "-arm64" : ""}" : "natives-windows-x86" break } dependencies { // -> Runtime <- // Lombok compileOnly 'org.projectlombok:lombok:' + project.dependencyLombok annotationProcessor 'org.projectlombok:lombok:' + project.dependencyLombok // JetBrains Annotations compileOnly 'org.jetbrains:annotations:' + project.dependencyJetbrainsAnnotations // LWJGL implementation platform("org.lwjgl:lwjgl-bom:${dependencyLwjgl}") implementation "org.lwjgl:lwjgl" implementation "org.lwjgl:lwjgl-bgfx" implementation "org.lwjgl:lwjgl-egl" implementation "org.lwjgl:lwjgl-glfw" implementation "org.lwjgl:lwjgl-ktx" implementation "org.lwjgl:lwjgl-opengl" implementation "org.lwjgl:lwjgl-opengles" implementation "org.lwjgl:lwjgl-shaderc" implementation "org.lwjgl:lwjgl-sse" implementation "org.lwjgl:lwjgl-vma" runtimeOnly "org.lwjgl:lwjgl::${dependencyLwjglNatives}" runtimeOnly "org.lwjgl:lwjgl-bgfx::${dependencyLwjglNatives}" runtimeOnly "org.lwjgl:lwjgl-glfw::${dependencyLwjglNatives}" runtimeOnly "org.lwjgl:lwjgl-ktx::${dependencyLwjglNatives}" runtimeOnly "org.lwjgl:lwjgl-opengl::${dependencyLwjglNatives}" runtimeOnly "org.lwjgl:lwjgl-opengles::${dependencyLwjglNatives}" runtimeOnly "org.lwjgl:lwjgl-shaderc::${dependencyLwjglNatives}" runtimeOnly "org.lwjgl:lwjgl-sse::${dependencyLwjglNatives}" runtimeOnly "org.lwjgl:lwjgl-vma::${dependencyLwjglNatives}" if (project.dependencyLwjglNatives == "natives-macos" || project.dependencyLwjglNatives == "natives-macos-arm64") runtimeOnly "org.lwjgl:lwjgl-vulkan::${dependencyLwjglNatives}" // -> Testing <- // Jetbrains Annotations testCompileOnly 'org.jetbrains:annotations:' + project.dependencyJetbrainsAnnotations // JUnit testImplementation platform('org.junit:junit-bom:5.' + project.dependencyJunit) testImplementation 'org.junit.jupiter:junit-jupiter' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' // jOOR testImplementation 'org.jooq:joor:' + project.dependencyJoor // -> Project <- implementation project(":base") implementation project(":graphics") } javadoc.options { setMemberLevel(JavadocMemberLevel.PUBLIC) setOverview("src/main/javadoc/overview.html") setLocale("en_US") setJFlags([ // Force Javadoc to use English translations "-Duser.language=en_US" ]) } test { useJUnitPlatform() testLogging { events "passed", "skipped", "failed" } }