From 5aa5689e4e5cca04f0dfd5161ee4568bc34dddbb Mon Sep 17 00:00:00 2001 From: "Ralf W. Grosse-Kunstleve" Date: Sat, 2 May 2026 16:35:10 -0700 Subject: [PATCH] ci: pass explicit ARM64 Python artifacts on windows-11-arm Avoid relying on Python_ROOT_DIR alone because CMake FindPython can still resolve the hosted x64 python.org install on the Windows ARM runner and then fail at link time with an x64/arm64 mismatch. Co-authored-by: Cursor --- .github/workflows/ci.yml | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5823dd2caa..c649a3f640 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1271,15 +1271,23 @@ jobs: python -m pip install -r tests/requirements.txt - name: Configure CMake - run: > - cmake -G Ninja -S . -B . - -DPYBIND11_WERROR=OFF - -DPYBIND11_SIMPLE_GIL_MANAGEMENT=OFF - -DDOWNLOAD_CATCH=ON - -DDOWNLOAD_EIGEN=ON - -DCMAKE_CXX_COMPILER=clang++ - -DCMAKE_CXX_STANDARD=20 - -DPython_ROOT_DIR="$env:Python_ROOT_DIR" + run: | + $pythonExecutable = Join-Path $env:pythonLocation "python.exe" + $pythonIncludeDir = Join-Path $env:pythonLocation "include" + $pythonVersion = (python -c "import sys; print(f'{sys.version_info.major}{sys.version_info.minor}')").Trim() + # PR 6051: FindPython can still resolve the x64 python.org install on + # windows-11-arm, so pass the ARM64 interpreter, headers, and import lib. + $pythonLibrary = Join-Path (Join-Path $env:pythonLocation "libs") "python$pythonVersion.lib" + cmake -G Ninja -S . -B . ` + -DPYBIND11_WERROR=OFF ` + -DPYBIND11_SIMPLE_GIL_MANAGEMENT=OFF ` + -DDOWNLOAD_CATCH=ON ` + -DDOWNLOAD_EIGEN=ON ` + -DCMAKE_CXX_COMPILER=clang++ ` + -DCMAKE_CXX_STANDARD=20 ` + -DPython_EXECUTABLE="$pythonExecutable" ` + -DPython_INCLUDE_DIR="$pythonIncludeDir" ` + -DPython_LIBRARY="$pythonLibrary" - name: Build run: cmake --build . -j 2