Skip to content

Commit 6674721

Browse files
authored
feat: cross-compile to Windows ARM (scikit-build#326)
* feat: cross-compile to Windows ARM * fix: add support for winarm download Signed-off-by: Henry Schreiner <[email protected]> Signed-off-by: Henry Schreiner <[email protected]>
1 parent d21893f commit 6674721

4 files changed

Lines changed: 17 additions & 2 deletions

File tree

.github/workflows/build.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,10 @@ jobs:
8484
arch: "AMD64"
8585
build: ""
8686
use_qemu: false
87+
- os: windows-2022
88+
arch: "ARM64"
89+
build: ""
90+
use_qemu: false
8791
- os: windows-2019
8892
arch: "x86"
8993
build: ""

CMakeLists.txt

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,12 @@ if(CMakePythonDistributions_SUPERBUILD)
7878
endif()
7979
if(WIN32)
8080
set(binary_archive "win32_binary")
81-
if((CMAKE_SIZEOF_VOID_P EQUAL 8) AND NOT(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "ARM64"))
82-
set(binary_archive "win64_binary")
81+
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
82+
if(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "ARM64" OR "$ENV{SETUPTOOLS_EXT_SUFFIX}" MATCHES arm64)
83+
set(binary_achive "winarm64_binary")
84+
else()
85+
set(binary_archive "win64_binary")
86+
endif()
8387
endif()
8488
endif()
8589
check_archive_var("${binary_archive}")

CMakeUrls.cmake

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,6 @@ set(win32_binary_sha256 "ddd115257a19ff3dd18fc63f32a00ae742f8b62d2e39bc3546
2424

2525
set(win64_binary_url "https://github.com/Kitware/CMake/releases/download/v3.25.0/cmake-3.25.0-windows-x86_64.zip")
2626
set(win64_binary_sha256 "b46030c10cab1170355952f9ac59f7e6dabc248070fc53f15dff11d4ed2910f8")
27+
28+
set(winarm64_binary_url "https://github.com/Kitware/CMake/releases/download/v3.25.0/cmake-3.25.0-windows-arm64.zip")
29+
set(winarm64_binary_sha256 "350e4a6361329cb6245b59a5eeb59ce96e2980ce5d149cd5384f6009eec04c9f")

scripts/update_cmake_version.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ def get_cmake_archive_urls_and_sha256s(version, verbose=False):
5454
"cmake-%s-macos10.10-universal.tar.gz" % version: "macos10_10_binary",
5555
"cmake-%s-windows-i386.zip" % version: "win32_binary",
5656
"cmake-%s-windows-x86_64.zip" % version: "win64_binary",
57+
"cmake-%s-windows-arm64.zip" % version: "winarm64_binary",
5758
}
5859

5960
# Get SHA256s for each asset
@@ -137,6 +138,9 @@ def generate_cmake_variables(urls_and_sha256s):
137138
138139
set(win64_binary_url "{win64_binary_url}")
139140
set(win64_binary_sha256 "{win64_binary_sha256}")
141+
142+
set(winarm64_binary_url "{winarm64_binary_url}")
143+
set(winarm64_binary_sha256 "{winarm64_binary_sha256}")
140144
"""
141145
).format(**template_inputs)
142146

0 commit comments

Comments
 (0)