diff --git a/.github/workflows/Hydra_Build.yml b/.github/workflows/Hydra_Build.yml index dbdfbf1b..9b72baec 100644 --- a/.github/workflows/Hydra_Build.yml +++ b/.github/workflows/Hydra_Build.yml @@ -213,3 +213,58 @@ jobs: path: | ${{github.workspace}}/build/panda3ds_libretro.so ${{github.workspace}}/docs/libretro/panda3ds_libretro.info + + ARM-Libretro-Android: + runs-on: ubuntu-24.04 + + strategy: + matrix: + build_type: + - release + + steps: + - name: Set BUILD_TYPE variable + run: echo "BUILD_TYPE=${{ matrix.build_type }}" >> $GITHUB_ENV + + - uses: actions/checkout@v4 + - name: Fetch submodules + run: git submodule update --init --recursive + + - name: Setup CCache + uses: hendrikmuhs/ccache-action@v1.2 + + - name: Set up gradle caches + uses: actions/cache@v4 + with: + path: | + ~/.gradle/caches + ~/.gradle/wrapper + key: ${{ runner.os }}-pandroid-arm64-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-pandroid-arm64- + + - name: Setup Java + uses: actions/setup-java@v4 + with: + distribution: 'zulu' + java-version: '17' + + - name: Configure CMake + run: cmake -B ${{github.workspace}}/build -DBUILD_LIBRETRO_CORE=1 -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK_ROOT}/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DENABLE_VULKAN=0 -DENABLE_USER_BUILD=ON -DCMAKE_CXX_FLAGS="-march=armv8-a+crypto" -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache + + - name: Build + run: | + # Apply patch for GLES compatibility + git apply ./.github/gles.patch + # Build the project with CMake + cmake --build ${{github.workspace}}/build --config ${{ env.BUILD_TYPE }} + + # Strip the generated library + ${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip --strip-unneeded ./build/libAlber.so + + - name: Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: Android libretro shared library (arm64) + path: | + ./build/libAlber.so