diff --git a/build.gradle b/build.gradle index 32c3a54..84f2755 100644 --- a/build.gradle +++ b/build.gradle @@ -60,7 +60,7 @@ repositories { dependencies { // Google Guava // A generic utilities library - implementation 'com.google.guava:guava:30.0-jre' + implementation 'com.google.guava:guava:31.0.1-jre' // Trove4j // Provides optimized Collections for primitive types @@ -73,8 +73,8 @@ dependencies { // Log4j // A logging library - implementation 'org.apache.logging.log4j:log4j-api:2.17.0' - implementation 'org.apache.logging.log4j:log4j-core:2.17.0' + implementation 'org.apache.logging.log4j:log4j-api:2.17.1' + implementation 'org.apache.logging.log4j:log4j-core:2.17.1' // JUnit // A unit-testing library diff --git a/build_logic/lwjgl.gradle b/build_logic/lwjgl.gradle index 4d9f68e..06dcc29 100644 --- a/build_logic/lwjgl.gradle +++ b/build_logic/lwjgl.gradle @@ -6,7 +6,7 @@ project.ext.lwjgl = new HashMap<>() // Version of LWJGL -lwjgl.version = '3.2.3' +lwjgl.version = '3.3.0' /* * Target platforms for current operation. @@ -33,10 +33,13 @@ switch (OperatingSystem.current()) { : 'linux' break case OperatingSystem.MAC_OS: - lwjgl.localArch = 'macos' + project.ext.lwjglNatives = System.getProperty('os.arch').startsWith('aarch64') ? 'macos-arm64' : 'macos' break case OperatingSystem.WINDOWS: - lwjgl.localArch = System.getProperty('os.arch').contains('64') ? 'windows' : 'windows-x86' + def osArch = System.getProperty('os.arch') + project.ext.lwjglNatives = osArch.contains('64') + ? "windows${osArch.startsWith('aarch64') ? '-arm64' : ''}" + : 'windows-x86' break } @@ -113,5 +116,5 @@ def requestTask(String name, String... targets) { } requestTask 'Linux', 'linux', 'linux-arm32', 'linux-arm64' -requestTask 'Windows', 'windows', 'windows-x86' -requestTask 'MacOS', 'macos' +requestTask 'Windows', 'windows', 'windows-arm64', 'windows-x86' +requestTask 'MacOS', 'macos', 'macos-arm64' diff --git a/docs/building/BuildGuide.md b/docs/building/BuildGuide.md index a91eef8..e738429 100644 --- a/docs/building/BuildGuide.md +++ b/docs/building/BuildGuide.md @@ -143,8 +143,8 @@ build. Some users might find the need to build for a specific set of platforms. Inclusion of GNU/Linux, Windows or MacOS dependencies individually can be controlled with the following arguments to the `./gradlew build` command: - `requestLinuxDependencies` requests that `natives-linux`, `natives-linux-arm32` and `natives-linux-arm64` binaries are included; -- `requestWindowsDependencies` requests that `natives-windows` and `natives-windows-x86` binaries are included; -- `requestMacOSDependencies` requests that `natives-macos` binaries are included. +- `requestWindowsDependencies` requests that `natives-windows`, `natives-windows-arm64` and `natives-windows-x86` binaries are included; +- `requestMacOSDependencies` requests that `natives-macos`, `natives-macos-arm64` binaries are included. These requests can be applied in any combination. For example, the following command produces a build containing only GNU/Linux and Windows natives: diff --git a/docs/building/BuildScriptReference.md b/docs/building/BuildScriptReference.md index c5d6b46..283d3b6 100644 --- a/docs/building/BuildScriptReference.md +++ b/docs/building/BuildScriptReference.md @@ -12,8 +12,8 @@ This document is a user's reference for the build script of Progressia. For a be - `packageDeb` – creates a Debian package. Incompatible with other `package` tasks. - `packageNsis` – creates a Windows NSIS installer. Incompatible with other `package` tasks. - `requestLinuxDependencies` – requests that `natives-linux`, `natives-linux-arm32` and `natives-linux-arm64` binaries are included when building. -- `requestWindowsDependencies` – requests that `natives-windows` and `natives-windows-x86` binaries are included when building. -- `requestMacOSDependencies` – requests that `natives-macos` binaries are included when building. +- `requestWindowsDependencies` – requests that `natives-windows`, `natives-windows-arm64` and `natives-windows-x86` binaries are included when building. +- `requestMacOSDependencies` – requests that `natives-macos` and `natives-macos-arm64` binaries are included when building. - `requestCrossPlatformDependencies` – requests that all binaries are included when building. To execute a task, run `./gradlew `. @@ -93,11 +93,13 @@ detected current architecture. ### Available targets -| Name | Task | -|---------------|------------------------------| -| `linux` | `requestLinuxDependencies` | -| `linux-arm32` | `requestLinuxDependencies` | -| `linux-arm64` | `requestLinuxDependencies` | -| `windows` | `requestWindowsDependencies` | -| `windows-x86` | `requestWindowsDependencies` | -| `macos` | `requestMacOSDependencies` | +| Name | Task | +|-----------------|------------------------------| +| `linux` | `requestLinuxDependencies` | +| `linux-arm32` | `requestLinuxDependencies` | +| `linux-arm64` | `requestLinuxDependencies` | +| `windows` | `requestWindowsDependencies` | +| `windows-arm64` | `requestWindowsDependencies` | +| `windows-x86` | `requestWindowsDependencies` | +| `macos` | `requestMacOSDependencies` | +| `macos-arm64` | `requestMacOSDependencies` |