|
|
@@ -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 |
|
|
|
|
|
|
|
|