Skip to content

Commit 441f8c7

Browse files
Willaaaaaaabgoglin
authored andcommitted
fix(cmake): support win-arm64
1 parent 3b1be1e commit 441f8c7

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

contrib/windows-cmake/CMakeLists.txt

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,15 +50,20 @@ set(SIZEOF_VOID_P ${CMAKE_SIZEOF_VOID_P})
5050
set(HWLOC_X86_32_ARCH)
5151
set(HWLOC_X86_64_ARCH)
5252
set(HWLOC_HAVE_X86_CPUID 1)
53-
if (CMAKE_SYSTEM_PROCESSOR MATCHES "(^AMD64$|^x86_64$)")
54-
# "AMD64" on Windows, "x86_64" on Linux
53+
if(CMAKE_C_COMPILER_ARCHITECTURE_ID MATCHES "^(x64|x86_64)$")
54+
# "x64" for Windows (MSVC)
55+
# "x86_64" for Windows (MinGW), Linux, macOS
5556
set(HWLOC_X86_64_ARCH 1)
56-
elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "(^x86$|i.86)")
57-
# "x86" on Windows, "i.86" on Linux
57+
elseif(CMAKE_C_COMPILER_ARCHITECTURE_ID MATCHES "^(X86|i[3-6]86)$")
58+
# "X86" for Windows (MSVC)
59+
# "i[3-6]86" for Windows (MinGW), Linux, macOS
5860
set(HWLOC_X86_32_ARCH 1)
5961
else()
62+
# For "arm64", "aarch64", "ARM64"...
6063
set(HWLOC_HAVE_X86_CPUID 0)
6164
endif()
65+
message(STATUS "Target Arch ID = ${CMAKE_C_COMPILER_ARCHITECTURE_ID}")
66+
message(STATUS "HWLOC_HAVE_X86_CPUID = ${HWLOC_HAVE_X86_CPUID}")
6267

6368
check_c_source_compiles("int main(void) {int cpuinfo[4]; __cpuidex(cpuinfo,0,0); return 0;}"
6469
HWLOC_HAVE_MSVC_CPUIDEX
@@ -122,7 +127,7 @@ add_library(hwloc
122127
${TOPDIR}/hwloc/topology-xml.c
123128
${TOPDIR}/hwloc/topology-xml-nolibxml.c
124129
${TOPDIR}/hwloc/topology-windows.c
125-
${TOPDIR}/hwloc/topology-x86.c
130+
$<$<BOOL:${HWLOC_HAVE_X86_CPUID}>:${TOPDIR}/hwloc/topology-x86.c>
126131
$<$<BOOL:${HWLOC_HAVE_LIBXML2}>:${TOPDIR}/hwloc/topology-xml-libxml.c>
127132
$<$<BOOL:${HWLOC_HAVE_OPENCL}>:${TOPDIR}/hwloc/topology-opencl.c>
128133
$<$<BOOL:${HAVE_CUDA}>:${TOPDIR}/hwloc/topology-cuda.c>

0 commit comments

Comments
 (0)