From 435f5842ce69e67a9c6a04af2300a5fea8376018 Mon Sep 17 00:00:00 2001 From: Dylan Conway Date: Wed, 4 Feb 2026 20:44:28 -0800 Subject: [PATCH] fix: pass CMAKE_SYSTEM_PROCESSOR=ARM64 on Windows ARM64 cmake.exe is an x64 binary, so the OS sets PROCESSOR_ARCHITECTURE=AMD64 when it runs on ARM64 Windows. This causes cmake to misdetect as x64 and use -march=haswell. Explicitly set CMAKE_SYSTEM_PROCESSOR=ARM64. --- scripts/build.mjs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/scripts/build.mjs b/scripts/build.mjs index 5ede415f9e..d30ad680bf 100755 --- a/scripts/build.mjs +++ b/scripts/build.mjs @@ -85,9 +85,13 @@ async function build(args) { generateOptions["--toolchain"] = toolchainPath; } - // Windows ARM64: log detection (compiler is selected by CMake/toolchain) + // Windows ARM64: cmake.exe is x64 so the OS reports PROCESSOR_ARCHITECTURE=AMD64. + // Override CMAKE_SYSTEM_PROCESSOR so cmake detects ARM64 correctly. if (isWindowsARM64) { console.log("Windows ARM64 detected"); + if (!generateOptions["-DCMAKE_SYSTEM_PROCESSOR"]) { + generateOptions["-DCMAKE_SYSTEM_PROCESSOR"] = "ARM64"; + } } const generateArgs = Object.entries(generateOptions).flatMap(([flag, value]) =>