From 28904c34ccceed075292c8b10250e5743df8ec93 Mon Sep 17 00:00:00 2001 From: Karl Tauber Date: Sat, 18 Jan 2025 17:09:32 +0100 Subject: [PATCH] Linux: added `libflatlaf-linux-arm64.so` for Linux on ARM64 (issue #899) built by GitHub Actions: https://github.com/JFormDesigner/FlatLaf/actions/runs/12845430366 --- CHANGELOG.md | 1 + flatlaf-core/build.gradle.kts | 1 + .../formdev/flatlaf/ui/FlatNativeLibrary.java | 6 +++--- .../flatlaf/natives/libflatlaf-linux-arm64.so | Bin 0 -> 70840 bytes 4 files changed, 5 insertions(+), 3 deletions(-) create mode 100644 flatlaf-core/src/main/resources/com/formdev/flatlaf/natives/libflatlaf-linux-arm64.so diff --git a/CHANGELOG.md b/CHANGELOG.md index 2435529e..166c56d9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ FlatLaf Change Log - Tree: Support wide cell renderer. (issue #922) - Extras: `FlatSVGIcon` color filters now can access painting component to implement component state based color mappings. (issue #906) +- Linux: Added `libflatlaf-linux-arm64.so` for Linux on ARM64. (issue #899) #### Fixed bugs diff --git a/flatlaf-core/build.gradle.kts b/flatlaf-core/build.gradle.kts index 11dd19b7..f02a413d 100644 --- a/flatlaf-core/build.gradle.kts +++ b/flatlaf-core/build.gradle.kts @@ -156,5 +156,6 @@ flatlafPublish { NativeArtifact( "${natives}/libflatlaf-macos-arm64.dylib", "macos-arm64", "dylib" ), NativeArtifact( "${natives}/libflatlaf-macos-x86_64.dylib", "macos-x86_64", "dylib" ), NativeArtifact( "${natives}/libflatlaf-linux-x86_64.so", "linux-x86_64", "so" ), + NativeArtifact( "${natives}/libflatlaf-linux-arm64.so", "linux-arm64", "so" ), ) } diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatNativeLibrary.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatNativeLibrary.java index 3c169c28..a9768cd4 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatNativeLibrary.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatNativeLibrary.java @@ -90,10 +90,10 @@ class FlatNativeLibrary classifier = SystemInfo.isAARCH64 ? "macos-arm64" : "macos-x86_64"; ext = "dylib"; - } else if( SystemInfo.isLinux && SystemInfo.isX86_64 ) { - // Linux: requires x86_64 + } else if( SystemInfo.isLinux && (SystemInfo.isX86_64 || SystemInfo.isAARCH64)) { + // Linux: requires x86_64 or aarch64 - classifier = "linux-x86_64"; + classifier = SystemInfo.isAARCH64 ? "linux-arm64" : "linux-x86_64"; ext = "so"; // Load libjawt.so (part of JRE) explicitly because it is not found diff --git a/flatlaf-core/src/main/resources/com/formdev/flatlaf/natives/libflatlaf-linux-arm64.so b/flatlaf-core/src/main/resources/com/formdev/flatlaf/natives/libflatlaf-linux-arm64.so new file mode 100644 index 0000000000000000000000000000000000000000..c1a663f3874c96bcdc4643e629b232a01112a88a GIT binary patch literal 70840 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 n*W$R--0kr-i>wh|cXZOY