name: android-armv8-gpu on: push: branches: [master] paths: - '.github/workflows/android-armv8-gpu.yml' - 'CMakeLists.txt' - 'cmake/**' - 'src/*' - 'src/layer/*' - 'src/layer/arm/**' - 'src/layer/vulkan/**' pull_request: branches: [master] paths: - '.github/workflows/android-armv8-gpu.yml' - 'CMakeLists.txt' - 'cmake/**' - 'src/*' - 'src/layer/*' - 'src/layer/arm/**' - 'src/layer/vulkan/**' concurrency: group: android-armv8-gpu-${{ github.ref }} cancel-in-progress: true permissions: contents: read jobs: android-aarch64-gpu: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: submodules: true - name: build run: | mkdir build && cd build cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_LATEST_HOME/build/cmake/android.toolchain.cmake -DANDROID_ABI="arm64-v8a" -DANDROID_PLATFORM=android-21 -DNCNN_VULKAN=ON .. cmake --build . -j $(nproc) - name: build-shared run: | mkdir build-shared && cd build-shared cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_LATEST_HOME/build/cmake/android.toolchain.cmake -DANDROID_ABI="arm64-v8a" -DANDROID_PLATFORM=android-21 -DNCNN_VULKAN=ON -DNCNN_SHARED_LIB=ON .. cmake --build . -j $(nproc) - name: build-termux run: | mkdir build-termux && cd build-termux cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_LATEST_HOME/build/cmake/android.toolchain.cmake -DANDROID_ABI="arm64-v8a" -DANDROID_PLATFORM=android-21 -DNCNN_VULKAN=ON -DNCNN_PLATFORM_API=OFF .. cmake --build . -j $(nproc) - name: build-android-29 run: | mkdir build-android-29 && cd build-android-29 cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_LATEST_HOME/build/cmake/android.toolchain.cmake -DANDROID_ABI="arm64-v8a" -DANDROID_PLATFORM=android-29 -DNCNN_VULKAN=ON .. cmake --build . -j $(nproc) - name: build-android-29-shared run: | mkdir build-android-29-shared && cd build-android-29-shared cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_LATEST_HOME/build/cmake/android.toolchain.cmake -DANDROID_ABI="arm64-v8a" -DANDROID_PLATFORM=android-29 -DNCNN_VULKAN=ON -DNCNN_SHARED_LIB=ON .. cmake --build . -j $(nproc) android-aarch64-gpu-ndk-r16b: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v4 with: submodules: true - name: ndk-r16b run: | wget https://dl.google.com/android/repository/android-ndk-r16b-linux-x86_64.zip -O $GITHUB_WORKSPACE/android-ndk-r16b-linux-x86_64.zip cd $GITHUB_WORKSPACE && unzip -q android-ndk-r16b-linux-x86_64.zip - name: configure run: mkdir build && cd build && cmake -DCMAKE_TOOLCHAIN_FILE=$GITHUB_WORKSPACE/android-ndk-r16b/build/cmake/android.toolchain.cmake -DANDROID_ABI="arm64-v8a" -DANDROID_PLATFORM=android-21 -DNCNN_VULKAN=ON .. - name: build run: cmake --build build -j $(nproc)