From 6f40dfa7536bf0fa450344202e38da6d3e14a466 Mon Sep 17 00:00:00 2001 From: Andrew Nelson Date: Sun, 5 Apr 2026 07:17:21 +1000 Subject: [PATCH 1/2] CI: refactor windows_arm64_steps --- .github/windows_arm64_steps/action.yml | 22 ---------------------- .github/workflows/wheels.yml | 9 ++++++--- requirements/pkgconf_requirements.txt | 1 + tools/wheels/cibw_before_build.sh | 3 +++ 4 files changed, 10 insertions(+), 25 deletions(-) delete mode 100644 .github/windows_arm64_steps/action.yml create mode 100644 requirements/pkgconf_requirements.txt diff --git a/.github/windows_arm64_steps/action.yml b/.github/windows_arm64_steps/action.yml deleted file mode 100644 index 8ecb3b8..0000000 --- a/.github/windows_arm64_steps/action.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: Build Dependencies(Win-ARM64) -description: "Setup LLVM for Win-ARM64 builds" - -runs: - using: "composite" - steps: - - name: Install LLVM with checksum verification - 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 - $expectedHash = "92f69a1134e32e54b07d51c6e24d9594852f6476f32c3d70471ae00fffc2d462" - $fileHash = (Get-FileHash -Path "LLVM-woa64.exe" -Algorithm SHA256).Hash - if ($fileHash -ne $expectedHash) { - Write-Error "Checksum verification failed. The downloaded file may be corrupted or tampered with." - exit 1 - } - Start-Process -FilePath ".\LLVM-woa64.exe" -ArgumentList "/S" -Wait - echo "C:\Program Files\LLVM\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append - echo "CC=clang-cl" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append - echo "CXX=clang-cl" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append - echo "FC=flang-new" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append - diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index c64b388..58052dd 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -95,14 +95,17 @@ jobs: with: architecture: 'x86' - - name: Setup LLVM for Windows ARM64 + - name: win_arm64 - set environment variables if: ${{ matrix.buildplat[1] == 'win_arm64' }} - uses: ./.github/windows_arm64_steps + run: | + echo "C:\Program Files\LLVM\bin" >> $env:GIHUB_PATH + echo "CC=clang-cl" >> $env:GITHUB_ENV + echo "CXX=clang-cl" >> $env:GITHUB_ENV + echo "FC=flang" >> $env:GITHUB_ENV - name: pkg-config-for-win if: runner.os == 'windows' run: | - choco install -y --no-progress --stoponfirstfailure --checksum 6004DF17818F5A6DBF19CB335CC92702 pkgconfiglite $CIBW = "${{ github.workspace }}/.openblas" # pkgconfig needs a complete path, and not just "./openblas since the # build is run in a tmp dir (?) diff --git a/requirements/pkgconf_requirements.txt b/requirements/pkgconf_requirements.txt new file mode 100644 index 0000000..6d366c3 --- /dev/null +++ b/requirements/pkgconf_requirements.txt @@ -0,0 +1 @@ +pkgconf==2.5.1.post1 \ No newline at end of file diff --git a/tools/wheels/cibw_before_build.sh b/tools/wheels/cibw_before_build.sh index 73a44d9..2826fc2 100644 --- a/tools/wheels/cibw_before_build.sh +++ b/tools/wheels/cibw_before_build.sh @@ -61,4 +61,7 @@ fi # cibuildwheel doesn't install delvewheel by default if [[ $RUNNER_OS == "Windows" ]]; then python -m pip install -r $PROJECT_DIR/requirements/delvewheel_requirements.txt + # pkgconf - carries out the role of pkg-config. + # Alternative is pkgconfiglite that you have to install with choco + python -m pip install -r $PROJECT_DIR/requirements/pkgconf.txt fi From 9dffb538cfe6fb9a13a4b001ca48d8969daf5cb8 Mon Sep 17 00:00:00 2001 From: Andrew Nelson Date: Sun, 5 Apr 2026 07:24:58 +1000 Subject: [PATCH 2/2] CI: correct the pkgconf_requirements name --- tools/wheels/cibw_before_build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/wheels/cibw_before_build.sh b/tools/wheels/cibw_before_build.sh index 2826fc2..1af0e97 100644 --- a/tools/wheels/cibw_before_build.sh +++ b/tools/wheels/cibw_before_build.sh @@ -63,5 +63,5 @@ if [[ $RUNNER_OS == "Windows" ]]; then python -m pip install -r $PROJECT_DIR/requirements/delvewheel_requirements.txt # pkgconf - carries out the role of pkg-config. # Alternative is pkgconfiglite that you have to install with choco - python -m pip install -r $PROJECT_DIR/requirements/pkgconf.txt + python -m pip install -r $PROJECT_DIR/requirements/pkgconf_requirements.txt fi