CMAKE_SYSTEM_PROCESSOR wrongly configured in emulated CMake
CMake provides a built-in flag
CMAKE_SYSTEM_PROCESSOR to specify the target platform for the build.
CMAKE_SYSTEM_PROCESSOR flag is derived from environment variables
PROCESSOR_ARCHITEW6432. And for emulated CMake, the environment variables could be set to AMD64 or IA32 and
CMAKE_SYSTEM_PROCESSOR derives the wrong value.
And if your CMake project uses
CMAKE_SYSTEM_PROCESSOR for platform-specific configuration it might fail.
You can use native
CMake. There are no official
CMake binaries for Windows Arm64 yet but can be generated from the source
Visual Studio 2022 Preview 17 provides native Arm64 MSVC toolchain but unfortunately,
CMake wouldn’t be able to use them with the visual studio generator.
CMake could be configured to generate the right Visual studio project files but MSBuild seems to be ignoring the directive in the project file
You will need to use native
, and pass https://linaro.atlassian.net/wiki/spaces/WOAR/pages/28684353912/CMake#Build-from-source
/p:PreferredToolArchitecture=ARM64 to MSBuild through CMake.
cmake --build . -- /p:PreferredToolArchitecture=ARM64