From fa5cc9c049071202eef705ac31966e7fb7526139 Mon Sep 17 00:00:00 2001 From: momo5502 Date: Mon, 13 Jan 2025 07:49:05 +0100 Subject: [PATCH] Add android build --- .github/workflows/build.yml | 23 +++++++++++++++++++++++ cmake/toolchain/android-ndk.cmake | 6 ++++++ 2 files changed, 29 insertions(+) create mode 100644 cmake/toolchain/android-ndk.cmake diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d080f82d..c89248fd 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -56,6 +56,8 @@ jobs: - Linux GCC - Linux Clang - macOS + - Android x86_64 + - Android arm64-v8a configuration: - Debug - Release @@ -73,6 +75,12 @@ jobs: clang-version: 18 - platform: macOS runner: macos-latest + - platform: Android x86_64 + runner: ubuntu-24.04 + abi: x86_64 + - platform: Android arm64-v8a + runner: ubuntu-24.04 + abi: arm64-v8a steps: - name: Checkout Source uses: actions/checkout@v4 @@ -100,8 +108,23 @@ jobs: uses: ilammy/msvc-dev-cmd@v1.13.0 if: "${{ matrix.platform == 'Windows' }}" + - uses: nttld/setup-ndk@v1 + id: setup-ndk + if: ${{ startsWith(matrix.platform, 'Android') }} + with: + ndk-version: r26d + add-to-path: false + + - name: CMake Build + run: cmake --preset=${{matrix.preset}} -DCMAKE_TOOLCHAIN_FILE=${{ github.workspace }}/cmake/toolchain/android-ndk.cmake && cmake --build --preset=${{matrix.preset}} + if: ${{ startsWith(matrix.platform, 'Android') }} + env: + ANDROID_NDK_ROOT: ${{ steps.setup-ndk.outputs.ndk-path }} + ANDROID_ABI: ${{matrix.abi}} + - name: CMake Build run: cmake --workflow --preset=${{matrix.preset}} + if: ${{ !startsWith(matrix.platform, 'Android') }} - name: Upload Artifacts uses: actions/upload-artifact@v4 diff --git a/cmake/toolchain/android-ndk.cmake b/cmake/toolchain/android-ndk.cmake new file mode 100644 index 00000000..fee20245 --- /dev/null +++ b/cmake/toolchain/android-ndk.cmake @@ -0,0 +1,6 @@ +set(CMAKE_SYSTEM_NAME "Android") +set(CMAKE_ANDROID_NDK "$ENV{ANDROID_NDK_ROOT}") + +set(ANDROID_ABI "$ENV{ANDROID_ABI}") +set(CMAKE_ANDROID_ARCH_ABI "${ANDROID_ABI}") +set(CMAKE_ANDROID_API "24") \ No newline at end of file