| @@ -0,0 +1,82 @@ | |||||
| name: Windows ARM64 CI | |||||
| on: | |||||
| push: | |||||
| branches: | |||||
| - develop | |||||
| - release-** | |||||
| pull_request: | |||||
| branches: | |||||
| - develop | |||||
| - release-** | |||||
| concurrency: | |||||
| group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |||||
| cancel-in-progress: true | |||||
| permissions: | |||||
| contents: read # to fetch code (actions/checkout) | |||||
| jobs: | |||||
| build: | |||||
| # if: "github.repository == 'OpenMathLib/OpenBLAS'" | |||||
| runs-on: windows-11-arm | |||||
| steps: | |||||
| - name: Checkout repository | |||||
| uses: actions/checkout@v3 | |||||
| - name: Install LLVM for Win-ARM64 | |||||
| shell: pwsh | |||||
| run: | | |||||
| Invoke-WebRequest https://github.com/llvm/llvm-project/releases/download/llvmorg-20.1.6/LLVM-20.1.6-woa64.exe -UseBasicParsing -OutFile LLVM-woa64.exe | |||||
| Start-Process -FilePath ".\LLVM-woa64.exe" -ArgumentList "/S" -Wait | |||||
| echo "C:\Program Files\LLVM\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append | |||||
| - name: Install CMake and Ninja for Win-ARM64 | |||||
| shell: pwsh | |||||
| run: | | |||||
| Invoke-WebRequest https://github.com/Kitware/CMake/releases/download/v3.29.4/cmake-3.29.4-windows-arm64.msi -OutFile cmake-arm64.msi | |||||
| Start-Process msiexec.exe -ArgumentList "/i cmake-arm64.msi /quiet /norestart" -Wait | |||||
| echo "C:\Program Files\CMake\bin" >> $env:GITHUB_PATH | |||||
| Invoke-WebRequest https://github.com/ninja-build/ninja/releases/download/v1.13.1/ninja-winarm64.zip -OutFile ninja-winarm64.zip | |||||
| Expand-Archive ninja-winarm64.zip -DestinationPath ninja | |||||
| Copy-Item ninja\ninja.exe -Destination "C:\Windows\System32" | |||||
| - name: Configure OpenBLAS | |||||
| shell: cmd | |||||
| run: | | |||||
| CALL "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsarm64.bat" | |||||
| mkdir build | |||||
| cd build | |||||
| cmake .. -G Ninja ^ | |||||
| -DCMAKE_BUILD_TYPE=Release ^ | |||||
| -DTARGET=ARMV8 ^ | |||||
| -DBINARY=64 ^ | |||||
| -DCMAKE_C_COMPILER=clang-cl ^ | |||||
| -DCMAKE_Fortran_COMPILER=flang-new ^ | |||||
| -DBUILD_SHARED_LIBS=ON ^ | |||||
| -DCMAKE_SYSTEM_PROCESSOR=arm64 ^ | |||||
| -DCMAKE_SYSTEM_NAME=Windows ^ | |||||
| -DCMAKE_INSTALL_PREFIX=C:/opt | |||||
| - name: Build OpenBLAS | |||||
| shell: cmd | |||||
| run: | | |||||
| cd build | |||||
| ninja -j16 | |||||
| - name: Install OpenBLAS | |||||
| shell: cmd | |||||
| run: | | |||||
| cd build | |||||
| cmake --install . | |||||
| - name: Run ctests | |||||
| shell: pwsh | |||||
| run: | | |||||
| $env:PATH = "C:\opt\bin;$env:PATH" | |||||
| cd build | |||||
| ctest | |||||