|
name: Build using CMake |
|
on: |
|
push: |
|
paths: |
|
- '**.S' |
|
- '**.c' |
|
- '**.cc' |
|
- '**.h' |
|
- 'CMakeLists.txt' |
|
- 'cmake/**' |
|
- 'scripts/build-*.sh' |
|
- '.github/**/*.yml' |
|
concurrency: |
|
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} |
|
cancel-in-progress: true |
|
jobs: |
|
cmake-linux-local: |
|
runs-on: ubuntu-latest |
|
timeout-minutes: 60 |
|
steps: |
|
- uses: actions/checkout@v3 |
|
- name: Update apt |
|
run: sudo apt update |
|
- name: Install ninja |
|
run: sudo apt install ninja-build |
|
- name: Configure and build |
|
run: scripts/build-local.sh |
|
working-directory: ${{ github.workspace }} |
|
cmake-linux-aarch64: |
|
runs-on: ubuntu-22.04 |
|
timeout-minutes: 120 |
|
steps: |
|
- uses: actions/checkout@v3 |
|
- name: Update apt |
|
run: sudo apt update |
|
- name: Install ninja |
|
run: sudo apt install ninja-build |
|
- name: Install aarch64 cross-toolchain |
|
run: sudo apt install crossbuild-essential-arm64 |
|
- name: Install qemu-aarch64 |
|
run: sudo apt install qemu-user |
|
- name: Configure and build |
|
run: scripts/build-linux-aarch64.sh -DCMAKE_BUILD_TYPE=Release |
|
working-directory: ${{ github.workspace }} |
|
- name: Run tests |
|
run: ctest --output-on-failure --parallel $(nproc) |
|
working-directory: ${{ github.workspace }}/build/linux/aarch64 |
|
cmake-linux-armhf: |
|
runs-on: ubuntu-22.04 |
|
timeout-minutes: 90 |
|
steps: |
|
- uses: actions/checkout@v3 |
|
- name: Update apt |
|
run: sudo apt update |
|
- name: Install ninja |
|
run: sudo apt install ninja-build |
|
- name: Install armhf cross-toolchain |
|
run: sudo apt install crossbuild-essential-armhf |
|
- name: Install qemu-arm |
|
run: sudo apt install qemu-user |
|
- name: Configure and build |
|
run: scripts/build-linux-armhf.sh -DCMAKE_BUILD_TYPE=Release |
|
working-directory: ${{ github.workspace }} |
|
- name: Run tests |
|
run: ctest --output-on-failure --parallel $(nproc) |
|
working-directory: ${{ github.workspace }}/build/linux/armhf |
|
cmake-linux-riscv64: |
|
runs-on: ubuntu-22.04 |
|
timeout-minutes: 60 |
|
steps: |
|
- uses: actions/checkout@v3 |
|
- name: Update apt |
|
run: sudo apt update |
|
- name: Install ninja |
|
run: sudo apt install ninja-build |
|
- name: Install riscv64 cross-toolchain |
|
run: sudo apt install crossbuild-essential-riscv64 |
|
- name: Install qemu-riscv64 |
|
run: sudo apt install qemu-user |
|
- name: Configure and build |
|
run: scripts/build-linux-riscv64.sh -DCMAKE_BUILD_TYPE=Release -DXNNPACK_ENABLE_RISCV_VECTOR=OFF |
|
working-directory: ${{ github.workspace }} |
|
- name: Run tests |
|
run: ctest --output-on-failure --parallel $(nproc) |
|
working-directory: ${{ github.workspace }}/build/linux/riscv64 |
|
cmake-windows-arm64: |
|
runs-on: windows-latest |
|
timeout-minutes: 120 |
|
steps: |
|
- uses: actions/checkout@v3 |
|
- name: Configure and build |
|
run: scripts/build-windows-arm64.cmd |
|
shell: cmd |
|
working-directory: ${{ github.workspace }} |
|
cmake-windows-x64: |
|
runs-on: windows-latest |
|
timeout-minutes: 120 |
|
steps: |
|
- uses: actions/checkout@v3 |
|
- name: Configure and build |
|
run: scripts/build-windows-x64.cmd |
|
shell: cmd |
|
working-directory: ${{ github.workspace }} |
|
env: |
|
CFLAGS: "/UNDEBUG" |
|
CXXFLAGS: "/UNDEBUG" |
|
- name: Run tests |
|
run: ctest -C Release --output-on-failure --parallel %NUMBER_OF_PROCESSORS% |
|
working-directory: ${{ github.workspace }}/build/windows/x64 |
|
cmake-windows-x86: |
|
runs-on: windows-latest |
|
timeout-minutes: 120 |
|
steps: |
|
- uses: actions/checkout@v3 |
|
- name: Configure and build |
|
run: scripts/build-windows-x86.cmd |
|
shell: cmd |
|
working-directory: ${{ github.workspace }} |
|
env: |
|
CFLAGS: "/UNDEBUG" |
|
CXXFLAGS: "/UNDEBUG" |
|
- name: Run tests |
|
run: ctest -C Release --output-on-failure --parallel %NUMBER_OF_PROCESSORS% |
|
working-directory: ${{ github.workspace }}/build/windows/x86 |
|
cmake-macos-arm64: |
|
runs-on: macos-latest |
|
timeout-minutes: 60 |
|
steps: |
|
- uses: actions/checkout@v3 |
|
- name: Create output directory |
|
run: mkdir -p build/macos/arm64 |
|
working-directory: ${{ github.workspace }} |
|
- name: Generate CMake project |
|
run: cmake -G Xcode -DCMAKE_OSX_ARCHITECTURES=arm64 -DHAVE_STD_REGEX=TRUE ../../.. |
|
working-directory: ${{ github.workspace }}/build/macos/arm64 |
|
- name: Build with Xcode |
|
run: cmake --build build/macos/arm64 --parallel $(sysctl -n hw.ncpu) -- -quiet |
|
working-directory: ${{ github.workspace }} |
|
cmake-macos-x86_64: |
|
runs-on: macos-latest |
|
timeout-minutes: 90 |
|
steps: |
|
- uses: actions/checkout@v3 |
|
- name: Create output directory |
|
run: mkdir -p build/macos/x86_64 |
|
working-directory: ${{ github.workspace }} |
|
- name: Generate CMake project |
|
run: cmake -G Xcode -DCMAKE_OSX_ARCHITECTURES=x86_64 -DHAVE_STD_REGEX=TRUE ../../.. |
|
working-directory: ${{ github.workspace }}/build/macos/x86_64 |
|
- name: Build with Xcode |
|
run: cmake --build build/macos/x86_64 --parallel $(sysctl -n hw.ncpu) -- -quiet |
|
working-directory: ${{ github.workspace }} |
|
- name: Run tests |
|
run: ctest --build-config Debug --output-on-failure --parallel $(sysctl -n hw.ncpu) |
|
working-directory: ${{ github.workspace }}/build/macos/x86_64 |
|
cmake-android: |
|
strategy: |
|
matrix: |
|
script: [build-android-arm64.sh, build-android-armv7.sh, build-android-x86.sh] |
|
runs-on: ubuntu-latest |
|
timeout-minutes: 40 |
|
steps: |
|
- uses: actions/checkout@v3 |
|
- name: Update apt |
|
run: sudo apt update |
|
- name: Install ninja |
|
run: sudo apt install ninja-build |
|
- name: Setup Android NDK |
|
id: setup-ndk |
|
uses: nttld/setup-ndk@v1 |
|
with: |
|
ndk-version: r23b |
|
add-to-path: false |
|
- name: Configure and build |
|
run: scripts/${{ matrix.script }} |
|
working-directory: ${{ github.workspace }} |
|
env: |
|
ANDROID_NDK: ${{ steps.setup-ndk.outputs.ndk-path }} |
|
cmake-ios-arm64: |
|
runs-on: macos-latest |
|
timeout-minutes: 60 |
|
steps: |
|
- uses: actions/checkout@v3 |
|
- name: Create output directory |
|
run: mkdir -p build/ios/arm64 |
|
working-directory: ${{ github.workspace }} |
|
- name: Generate CMake project |
|
run: cmake -G Xcode -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_ARCHITECTURES=arm64 -DXNNPACK_BUILD_BENCHMARKS=OFF -DXNNPACK_BUILD_TESTS=OFF ../../.. |
|
working-directory: ${{ github.workspace }}/build/ios/arm64 |
|
- name: Build with Xcode |
|
run: cmake --build build/ios/arm64 --parallel $(sysctl -n hw.ncpu) -- -quiet |
|
working-directory: ${{ github.workspace }} |
|
cmake-ios-x86_64: |
|
runs-on: macos-latest |
|
timeout-minutes: 60 |
|
steps: |
|
- uses: actions/checkout@v3 |
|
- name: Create output directory |
|
run: mkdir -p build/ios/x86_64 |
|
working-directory: ${{ github.workspace }} |
|
- name: Generate CMake project |
|
run: cmake -G Xcode -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_ARCHITECTURES=x86_64 -DXNNPACK_BUILD_BENCHMARKS=OFF -DXNNPACK_BUILD_TESTS=OFF ../../.. |
|
working-directory: ${{ github.workspace }}/build/ios/x86_64 |
|
- name: Build with Xcode |
|
run: cmake --build build/ios/x86_64 --parallel $(sysctl -n hw.ncpu) -- -sdk iphonesimulator -quiet |
|
working-directory: ${{ github.workspace }} |
|
|
|
|