mirror of
https://github.com/raysan5/raylib.git
synced 2025-09-05 19:08:13 +00:00
[build] Add ARM64 support to Linux builds
- Add ubuntu-24.04-arm runner for native ARM64 compilation - Support building both static and shared libraries for ARM64 - Maintain backwards compatibility with existing x86/x64 builds - Addresses issue #5051 for ARM64 pre-compiled binaries Expected output: raylib-X.X-linux_arm64.tar.gz in releases
This commit is contained in:
24
.github/workflows/linux.yml
vendored
24
.github/workflows/linux.yml
vendored
@@ -22,22 +22,28 @@ jobs:
|
|||||||
build:
|
build:
|
||||||
permissions:
|
permissions:
|
||||||
contents: write # for actions/upload-release-asset to upload release asset
|
contents: write # for actions/upload-release-asset to upload release asset
|
||||||
runs-on: ubuntu-latest
|
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
max-parallel: 1
|
max-parallel: 1
|
||||||
matrix:
|
matrix:
|
||||||
bits: [32, 64]
|
|
||||||
include:
|
include:
|
||||||
- bits: 32
|
- bits: 32
|
||||||
ARCH: "i386"
|
ARCH: "i386"
|
||||||
ARCH_NAME: "i386"
|
ARCH_NAME: "i386"
|
||||||
COMPILER_PATH: "/user/bin"
|
COMPILER_PATH: "/user/bin"
|
||||||
|
runner: "ubuntu-latest"
|
||||||
- bits: 64
|
- bits: 64
|
||||||
ARCH: "x86_64"
|
ARCH: "x86_64"
|
||||||
ARCH_NAME: "amd64"
|
ARCH_NAME: "amd64"
|
||||||
COMPILER_PATH: "/user/bin"
|
COMPILER_PATH: "/user/bin"
|
||||||
|
runner: "ubuntu-latest"
|
||||||
|
- bits: 64
|
||||||
|
ARCH: "aarch64"
|
||||||
|
ARCH_NAME: "arm64"
|
||||||
|
COMPILER_PATH: "/user/bin"
|
||||||
|
runner: "ubuntu-24.04-arm"
|
||||||
|
|
||||||
|
runs-on: ${{ matrix.runner }}
|
||||||
env:
|
env:
|
||||||
RELEASE_NAME: raylib-dev_linux_${{ matrix.ARCH_NAME }}
|
RELEASE_NAME: raylib-dev_linux_${{ matrix.ARCH_NAME }}
|
||||||
|
|
||||||
@@ -66,7 +72,7 @@ jobs:
|
|||||||
# ${{ matrix.ARCH }}-linux-gnu-gcc -v
|
# ${{ matrix.ARCH }}-linux-gnu-gcc -v
|
||||||
|
|
||||||
# TODO: Support 32bit (i386) static/shared library building
|
# TODO: Support 32bit (i386) static/shared library building
|
||||||
- name: Build Library
|
- name: Build Library (32-bit)
|
||||||
run: |
|
run: |
|
||||||
cd src
|
cd src
|
||||||
make PLATFORM=PLATFORM_DESKTOP CC=gcc RAYLIB_LIBTYPE=STATIC RAYLIB_RELEASE_PATH="../build/${{ env.RELEASE_NAME }}/lib" CUSTOM_CFLAGS="-m32" -B
|
make PLATFORM=PLATFORM_DESKTOP CC=gcc RAYLIB_LIBTYPE=STATIC RAYLIB_RELEASE_PATH="../build/${{ env.RELEASE_NAME }}/lib" CUSTOM_CFLAGS="-m32" -B
|
||||||
@@ -74,13 +80,21 @@ jobs:
|
|||||||
cd ..
|
cd ..
|
||||||
if: matrix.bits == 32
|
if: matrix.bits == 32
|
||||||
|
|
||||||
- name: Build Library
|
- name: Build Library (64-bit x86)
|
||||||
run: |
|
run: |
|
||||||
cd src
|
cd src
|
||||||
make PLATFORM=PLATFORM_DESKTOP CC=gcc RAYLIB_LIBTYPE=STATIC RAYLIB_RELEASE_PATH="../build/${{ env.RELEASE_NAME }}/lib" -B
|
make PLATFORM=PLATFORM_DESKTOP CC=gcc RAYLIB_LIBTYPE=STATIC RAYLIB_RELEASE_PATH="../build/${{ env.RELEASE_NAME }}/lib" -B
|
||||||
make PLATFORM=PLATFORM_DESKTOP CC=gcc RAYLIB_LIBTYPE=SHARED RAYLIB_RELEASE_PATH="../build/${{ env.RELEASE_NAME }}/lib" -B
|
make PLATFORM=PLATFORM_DESKTOP CC=gcc RAYLIB_LIBTYPE=SHARED RAYLIB_RELEASE_PATH="../build/${{ env.RELEASE_NAME }}/lib" -B
|
||||||
cd ..
|
cd ..
|
||||||
if: matrix.bits == 64
|
if: matrix.bits == 64 && matrix.ARCH == 'x86_64'
|
||||||
|
|
||||||
|
- name: Build Library (64-bit ARM)
|
||||||
|
run: |
|
||||||
|
cd src
|
||||||
|
make PLATFORM=PLATFORM_DESKTOP CC=gcc RAYLIB_LIBTYPE=STATIC RAYLIB_RELEASE_PATH="../build/${{ env.RELEASE_NAME }}/lib" -B
|
||||||
|
make PLATFORM=PLATFORM_DESKTOP CC=gcc RAYLIB_LIBTYPE=SHARED RAYLIB_RELEASE_PATH="../build/${{ env.RELEASE_NAME }}/lib" -B
|
||||||
|
cd ..
|
||||||
|
if: matrix.bits == 64 && matrix.ARCH == 'aarch64'
|
||||||
|
|
||||||
- name: Generate Artifacts
|
- name: Generate Artifacts
|
||||||
run: |
|
run: |
|
||||||
|
Reference in New Issue
Block a user