name: Android on: push: branches: - "*" tags: - "*" pull_request: branches: - "*" jobs: build-shared: name: "Libs: ${{ matrix.libs }}, ABI: ${{ matrix.abi }}, Platform: ${{ matrix.platform-version }}, Build OS: ${{ matrix.runs-on }}" runs-on: ${{ matrix.runs-on }} strategy: fail-fast: false matrix: libs: ['shared', 'static'] abi: ['arm64-v8a', 'armeabi-v7a', 'x86_64'] platform-version: ['33'] runs-on: ['ubuntu-24.04'] steps: - uses: actions/checkout@v4 with: submodules: 'recursive' - name: Install Packages run: | sudo apt-get update sudo apt-get install -y ninja-build - name: Configure Build run: | if [ "${{ matrix.libs }}" == "shared" ]; then shared_libs=ON else shared_libs=OFF fi cmake -G "Ninja Multi-Config" \ -S "${{ github.workspace }}" \ -B "${{ github.workspace }}/cmake-build" \ -DCMAKE_TOOLCHAIN_FILE="${ANDROID_NDK_ROOT}/build/cmake/android.toolchain.cmake" \ -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/install" \ -DANDROID_PLATFORM="${{ matrix.platform-version }}" \ -DANDROID_ABI="${{ matrix.abi }}" \ -DCMAKE_VERBOSE_MAKEFILE=YES \ -DBUILD_SHARED_LIBS="${shared_libs}" \ -DBUILD_TESTING=NO \ -DENABLE_SDL_UI=OFF - name: Build Debug run: cmake --build "${{ github.workspace }}/cmake-build" --config "Debug" --parallel - name: Build Release run: cmake --build "${{ github.workspace }}/cmake-build" --config "Release" --parallel - name: Install run: | cmake --build "${{ github.workspace }}/cmake-build" --config "Debug" --target install cmake --build "${{ github.workspace }}/cmake-build" --config "Release" --target install - name: Upload Artifact uses: actions/upload-artifact@v4 with: name: projectm-android-${{ matrix.libs }}-${{ matrix.abi }}-api${{ matrix.platform-version }} path: install/*