From 19ed492881d97dab2b0268a4bf72836549182050 Mon Sep 17 00:00:00 2001 From: 000exploit Date: Fri, 6 Mar 2026 17:51:45 +0100 Subject: [PATCH] Update linux build scripts for arm64 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Since Steamworks SDK 1.63 introduced the arm64 architecture (linuxarm64), it’s now possible to work with the Steam API on arm64 (aarch64) hosts. It’s not possible to create fat libraries on Linux like on macOS, so the arm64 build script is separate from the x86_64 variant. --- build-natives/build-linux-arm64.sh | 7 +++++ build-natives/build-linux-x86_64.sh | 7 +++++ build-natives/build-linux.lua | 44 +++++++++++++++-------------- 3 files changed, 37 insertions(+), 21 deletions(-) create mode 100755 build-natives/build-linux-arm64.sh create mode 100755 build-natives/build-linux-x86_64.sh diff --git a/build-natives/build-linux-arm64.sh b/build-natives/build-linux-arm64.sh new file mode 100755 index 00000000..049022c9 --- /dev/null +++ b/build-natives/build-linux-arm64.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +premake5 --file=build-linux.lua gmake +make clean config=release_arm64 +make config=release_arm64 +mv bin/arm64/release/libsteamworks4j.so ../java-wrapper/src/main/resources/libsteamworks4j.so +mv bin/arm64/release/libsteamworks4j-server.so ../server/src/main/resources/libsteamworks4j-server.so +mv bin/arm64/release/libsteamworks4j-encryptedappticket.so ../server/src/main/resources/libsteamworks4j-encryptedappticket.so diff --git a/build-natives/build-linux-x86_64.sh b/build-natives/build-linux-x86_64.sh new file mode 100755 index 00000000..3ca8956f --- /dev/null +++ b/build-natives/build-linux-x86_64.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +premake5 --file=build-linux.lua gmake +make clean config=release_x64 +make config=release_x64 +mv bin/x64/release/libsteamworks4j.so ../java-wrapper/src/main/resources/libsteamworks4j.so +mv bin/x64/release/libsteamworks4j-server.so ../server/src/main/resources/libsteamworks4j-server.so +mv bin/x64/release/libsteamworks4j-encryptedappticket.so ../server/src/main/resources/libsteamworks4j-encryptedappticket.so diff --git a/build-natives/build-linux.lua b/build-natives/build-linux.lua index e1ed7288..0558f8d5 100644 --- a/build-natives/build-linux.lua +++ b/build-natives/build-linux.lua @@ -1,6 +1,6 @@ solution "steamworks4j" configurations { "release" } - platforms { "x64" } + platforms { "x64", "arm64" } buildoptions { "-std=c++11", @@ -18,10 +18,19 @@ solution "steamworks4j" "LINUX" } - flags { - "Optimize" + steam_arch = { + x86_64 = "linux64", + ARM64 = "linuxarm64" } + filter "platforms:x64" + architecture "x86_64" + filter "platforms:arm64" + architecture "ARM64" + filter {} + + libdirs { "../sdk/redistributable_bin/%{steam_arch[cfg.architecture]}" } + project "steamworks4j" kind "SharedLib" @@ -35,12 +44,9 @@ solution "steamworks4j" "../java-wrapper/src/main/native", } - libdirs { - "../sdk/redistributable_bin/linux64" - } - links { - "steam_api" - } + links { + "steam_api" + } project "steamworks4j-server" @@ -59,12 +65,9 @@ solution "steamworks4j" "../server/src/main/native", } - libdirs { - "../sdk/redistributable_bin/linux64" - } - links { - "steam_api" - } + links { + "steam_api" + } project "steamworks4j-encryptedappticket" @@ -79,9 +82,8 @@ solution "steamworks4j" "../server/src/main/native", } - libdirs { - "../sdk/public/steam/lib/linux64" - } - links { - "sdkencryptedappticket" - } + libdirs { "../sdk/public/steam/lib/%{steam_arch[cfg.architecture]}" } + + links { + "sdkencryptedappticket" + }