From aeadd0ae85f34167112bc76de58b49e645972218 Mon Sep 17 00:00:00 2001 From: Brent Cook Date: Wed, 4 Jun 2025 17:53:34 +0700 Subject: adjust CMAKE_SYSTEM_PROCESSOR on Windows builds Match CMAKE_GENERATOR_PLATFORM so that cross-builds work properly. Otherwise, we're just targeting the build system anyway. --- CMakeLists.txt | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 400f29e..cdae646 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -387,6 +387,14 @@ if(APPLE AND (NOT CMAKE_OSX_ARCHITECTURES STREQUAL "")) set(CMAKE_SYSTEM_PROCESSOR "${CMAKE_OSX_ARCHITECTURES}") endif() +# CMAKE_SYSTEM_PROCESSOR is not consistently set to the target architecture. +# https://cmake.org/cmake/help/latest/variable/CMAKE_SYSTEM_PROCESSOR.html +if (WIN32 AND (NOT CMAKE_GENERATOR_PLATFORM STREQUAL "")) + message("CMAKE_SYSTEM_PROCESSOR: ${CMAKE_SYSTEM_PROCESSOR}") + message("CMAKE_GENERATOR_PLATFORM: ${CMAKE_GENERATOR_PLATFORM}") + set(CMAKE_SYSTEM_PROCESSOR "${CMAKE_GENERATOR_PLATFORM}") +endif() + if(CMAKE_SYSTEM_PROCESSOR MATCHES "(aarch64|arm64|ARM64)") set(HOST_AARCH64 true) if(WIN32) @@ -396,9 +404,9 @@ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm") set(HOST_ARM true) elseif(CMAKE_SYSTEM_NAME STREQUAL "SunOS" AND CMAKE_SYSTEM_PROCESSOR MATCHES "i386") set(HOST_X86_64 true) -elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "(x86_64|amd64|AMD64)") +elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "(x86_64|x64|amd64|AMD64)") set(HOST_X86_64 true) -elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "(i[3-6]86|[xX]86)") +elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "(i[3-6]86|[xX]86|Win32)") set(ENABLE_ASM false) set(HOST_I386 true) elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "loongarch64") -- cgit v1.2.3-55-g6feb