@@ -395,7 +395,7 @@ jobs:
395395 run : |
396396 ${{ matrix.python-version }} -m pip install --no-deps wheelhouse/*-py3-none-linux_*.whl
397397 # Clean up test wheels
398- rm -f wheelhouse/*-py3-none-linux_i386 .whl
398+ rm -f wheelhouse/*-py3-none-linux_i* .whl
399399 cd /
400400 ${{ matrix.python-version }} -c 'import pyray; pyray.init_window(100,100,"test")' >/tmp/output 2>&1 || true
401401 cat /tmp/output
@@ -411,6 +411,106 @@ jobs:
411411 name : wheel-linux32-${{ matrix.raylib-platform }}-${{ matrix.python-version }}
412412 path : wheelhouse/*
413413
414+ build-linux-arm64 :
415+ runs-on : ubuntu-22.04-arm
416+ strategy :
417+ matrix :
418+ python-version : [ '3.10', '3.11', '3.12', '3.13', '3.14']
419+ raylib-platform : [ 'Desktop', 'SDL', 'DRM' ]
420+ steps :
421+ # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
422+ - uses : actions/checkout@v4
423+ with :
424+ submodules : recursive
425+
426+ - name : fix raygui bug
427+ run : |
428+ patch -p0 <raygui.h.diff
429+
430+ - name : Build SDL
431+ run : |
432+ wget https://github.com/libsdl-org/SDL/archive/refs/tags/release-2.32.8.tar.gz
433+ tar xvfz release-2.32.8.tar.gz
434+ mkdir build
435+ cd build
436+ cmake ../SDL-release-2.32.8 -DSDL_SHARED=OFF -DSDL_STATIC=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_BUILD_TYPE=Release
437+ cmake --build . --config Release
438+ sudo cmake --install .
439+
440+ - name : Setup Python
441+ uses : actions/setup-python@v5
442+ with :
443+ # Version range or exact version of a Python version to use, using SemVer's version range syntax.
444+ python-version : ${{ matrix.python-version }}
445+
446+
447+
448+ - name : Build raylib with SDL if selected
449+ run : |
450+ cd raylib-c
451+ mkdir build2
452+ cd build2
453+ cmake -DPLATFORM=${{ matrix.raylib-platform }} -DBUILD_EXAMPLES=OFF -DCUSTOMIZE_BUILD=ON -DSUPPORT_FILEFORMAT_JPG=ON -DSUPPORT_FILEFORMAT_FLAC=ON -DWITH_PIC=ON -DCMAKE_BUILD_TYPE=Release ..
454+ make -j2
455+ sudo make install
456+
457+ - name : Copy extras
458+ run : |
459+ sudo cp -r raylib-c/src/external/glfw/include/GLFW /usr/local/include/
460+ sudo cp physac/src/physac.h /usr/local/include/
461+ sudo cp raygui/src/raygui.h /usr/local/include/
462+
463+ - name : Build raylib-python-cffi
464+ env :
465+ RAYLIB_PLATFORM : ${{ matrix.raylib-platform }}
466+ PKG_CONFIG_PATH : /usr/local/lib/pkgconfig
467+ run : |
468+ ${{ matrix.python-version }} -m pip install --upgrade pip
469+ ${{ matrix.python-version }} -m pip install --upgrade cffi
470+ ${{ matrix.python-version }} -m pip install --upgrade wheel
471+ ${{ matrix.python-version }} -m pip install --upgrade setuptools
472+ ${{ matrix.python-version }} -m pip install --upgrade build
473+ ${{ matrix.python-version }} -m build --wheel
474+ python3 -m pip install --upgrade auditwheel
475+ python3 -m pip install --upgrade patchelf
476+ python3 -m auditwheel repair dist/*.whl
477+ shell : bash
478+ - name : Rename wheel for testing
479+ run : |
480+ # Rename wheelhouse wheels to be maximally compatible for testing
481+ for wheel in wheelhouse/raylib*.whl; do
482+ if [ -f "$wheel" ]; then
483+ basename=$(basename "$wheel")
484+ # Extract package and version using regex
485+ if [[ $basename =~ ^([^-]+)-([^-]+.*)-[^-]+-[^-]+-[^-]+\.whl$ ]]; then
486+ package="${BASH_REMATCH[1]}"
487+ version="${BASH_REMATCH[2]}"
488+ new_name="${package}-${version}-py3-none-linux_aarch64.whl"
489+ echo "Renaming: $basename -> $new_name"
490+ cp "$wheel" "wheelhouse/$new_name"
491+ fi
492+ fi
493+ done
494+ shell : bash
495+ - name : Test
496+ run : |
497+ ${{ matrix.python-version }} -m pip install --no-deps wheelhouse/*-py3-none-linux_aarch64.whl
498+ # Clean up test wheels
499+ rm -f wheelhouse/*-py3-none-linux_aarch64.whl
500+ cd /
501+ ${{ matrix.python-version }} -c 'import pyray; pyray.init_window(100,100,"test")' >/tmp/output 2>&1 || true
502+ cat /tmp/output
503+ if grep -q "INFO: Initializing raylib" /tmp/output; then
504+ echo "Passed"
505+ else
506+ echo "Failed"
507+ exit 1
508+ fi
509+ - name : Upload build Artifact wheel
510+ uses : actions/upload-artifact@v4
511+ with :
512+ name : wheel-linux-arm64-${{ matrix.raylib-platform }}-${{ matrix.python-version }}
513+ path : wheelhouse/*
414514
415515
416516
@@ -688,7 +788,7 @@ jobs:
688788 path : dynamic/dist/*
689789
690790 merge :
691- needs : [build-mac-intel, build-mac-arm64, build-windows, build-linux, build-linux32, build-windows32, source-distro, dynamic-distro]
791+ needs : [build-mac-intel, build-mac-arm64, build-windows, build-linux, build-linux-arm64, build- linux32, build-windows32, source-distro, dynamic-distro]
692792 runs-on : ubuntu-latest
693793 steps :
694794 - name : Merge All Artifacts
0 commit comments