name: windows-arm on: push: branches: [master] paths: - '.github/workflows/windows-arm.yml' - 'CMakeLists.txt' - 'cmake/**' - 'src/*' - 'src/layer/*' - 'src/layer/arm/**' - 'src/layer/vulkan/**' - 'tests/**' pull_request: branches: [master] paths: - '.github/workflows/windows-arm.yml' - 'CMakeLists.txt' - 'cmake/**' - 'src/*' - 'src/layer/*' - 'src/layer/arm/**' - 'src/layer/vulkan/**' - 'tests/**' concurrency: group: windows-arm-${{ github.ref }} cancel-in-progress: true permissions: contents: read jobs: windows: name: ${{ matrix.vs-version }} runs-on: ${{ matrix.os }} strategy: matrix: include: - vs-version: vs2019 toolset-version: v142 os: windows-2022 - vs-version: vs2022 toolset-version: v143 os: windows-2022 env: UseMultiToolTask: true NCNN_CMAKE_OPTIONS: -DNCNN_BUILD_TESTS=OFF -DNCNN_BUILD_TOOLS=OFF -DNCNN_BUILD_EXAMPLES=OFF -DNCNN_VULKAN=ON steps: - uses: actions/checkout@v4 with: submodules: true - name: arm64 run: | mkdir build-arm64; cd build-arm64 cmake -T ${{ matrix.toolset-version }},host=x64 -A arm64 ${{ env.NCNN_CMAKE_OPTIONS }} .. cmake --build . --config Release -j 4 - name: arm64-shared run: | mkdir build-arm64-shared; cd build-arm64-shared cmake -T ${{ matrix.toolset-version }},host=x64 -A arm64 ${{ env.NCNN_CMAKE_OPTIONS }} -DNCNN_SHARED_LIB=ON .. cmake --build . --config Release -j 4 woa-linux: name: woa-linux runs-on: ubuntu-latest container: linaro/wine-arm64 steps: - uses: actions/checkout@v4 - name: msvc-wine env: WINEPREFIX: /tmp/wine-x64-prefix/ run: | apt-get update apt-get install -y wine64 python3 msitools python3-simplejson python3-six ca-certificates winbind cmake ninja-build meson ln -s /usr/bin/wine /usr/bin/wine64 xvfb-run winecfg & git clone --depth 1 https://github.com/mstorsjo/msvc-wine msvc-wine/vsdownload.py --accept-license --dest /msvc msvc-wine/install.sh /msvc - name: build env: WINEPREFIX: /tmp/wine-x64-prefix/ CC: cl CXX: cl run: | export PATH=/msvc/bin/arm64:$PATH mkdir build && cd build cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_SYSTEM_NAME=Windows -DNCNN_BUILD_TESTS=ON .. cmake --build . --config Release -j $(nproc) - name: test run: | cd build TESTS_EXECUTABLE_LOADER=wine-arm64 TESTS_EXECUTABLE_LOADER_ARGUMENTS="" ctest --output-on-failure -j $(nproc) windows-arm: runs-on: windows-11-arm env: UseMultiToolTask: true steps: - uses: actions/checkout@v4 with: submodules: true - name: build run: | mkdir build; cd build cmake -A arm64 -DNCNN_BUILD_TESTS=ON -DNCNN_BUILD_TOOLS=OFF -DNCNN_BUILD_EXAMPLES=OFF -DNCNN_VULKAN=OFF -DNCNN_ARM82=OFF .. cmake --build . --config Release -j 4 - name: test run: cd build; ctest -C Release --output-on-failure -j 4