- disabled cross-compile for arm64 architecture on x86_64 Linux - use `apt-get` instead of `apt` - use long command line options for `codesign`
2.1 KiB
FlatLaf Linux Native Library
This sub-project contains the source code for the FlatLaf Linux native library.
The native library can be built only on Linux and requires a C++ compiler.
The native library is available for following CPU architectures: x86_64 (or
amd64) and arm64 (or aarch64).
To be able to build FlatLaf on any platform, and without C++ compiler, the pre-built native libraries are checked into Git at flatlaf-core/src/main/resources/com/formdev/flatlaf/natives/.
The native libraries were built on a GitHub server with the help of GitHub Actions. See: Native Libraries workflow. Then the produced Artifacts ZIP was downloaded and the native library checked into Git.
Development
To build the library on Linux, some packages needs to be installed:
build-essential- GCC and development toolslibxt-dev- X11 toolkit development headerslibgtk-3-dev- GTK 3 toolkit development headersg++-aarch64-linux-gnu- GNU C++ compiler for the arm64 architecture (only on x86_64 Linux for cross-compiling for arm64 architecture)
Ubuntu
sudo apt-get update
sudo apt-get install build-essential libxt-dev libgtk-3-dev
Cross-compile for arm64 architecture on x86_64 Linux
Only needed on x86_64 Linux if you want cross-compile for arm64 architecture:
sudo apt-get install g++-aarch64-linux-gnu
Download libgtk-3.so for arm64 architecture:
cd flatlaf-natives/flatlaf-natives-linux/lib/aarch64
wget --no-verbose https://ports.ubuntu.com/pool/main/g/gtk%2b3.0/libgtk-3-0_3.24.18-1ubuntu1_arm64.deb
ar -x libgtk-3-0_3.24.18-1ubuntu1_arm64.deb data.tar.xz
tar -xvf data.tar.xz --wildcards --to-stdout "./usr/lib/aarch64-linux-gnu/libgtk-3.so.0.*" > libgtk-3.so
rm libgtk-3-0_3.24.18-1ubuntu1_arm64.deb data.tar.xz
Fedora
sudo dnf group install c-development
sudo dnf install libXt-devel gtk3-devel
CentOS
sudo yum install libXt-devel gtk3-devel