summaryrefslogtreecommitdiffstats
path: root/Help/variable/CMAKE_APPLE_SILICON_PROCESSOR.rst
Commit message (Collapse)AuthorAgeFilesLines
* Help: CMAKE_APPLE_SILICON_PROCESSOR cannot be set in a toolchain fileBrad King2021-04-011-3/+2
| | | | | | | `CMakeDetermineSystem` determines the host system information before loading the toolchain file. Issue: #22012
* macOS: Offer control over host architecture on Apple Silicon hostsBrad King2020-12-101-0/+15
Since commit b6c60f14b6 (macOS: Default to arm64 architecture on Apple Silicon hosts, 2020-09-28, v3.19.0-rc1~63^2) we use `sysctl` to detect that we are running on Apple Silicon in a way that pierces Rosetta. This always sets `CMAKE_HOST_SYSTEM_PROCESSOR` to be `arm64` on such hosts. However, macOS offers strong support for running processes under an emulated `x86_64` architecture. Teach CMake to select either `arm64` or `x86_64` as the host architecture on Apple Silicon based on the architecture of its own process. When CMake is built as a universal binary, macOS will select whichever slice (architecture) is appropriate under the user's shell, and `CMAKE_HOST_SYSTEM_PROCESSOR` will match. Also offer a `CMAKE_APPLE_SILICON_PROCESSOR` variable and environment variable to provide users with explicit control over the host architecture selection regardless of CMake's own architecture. Finally, if `CMAKE_OSX_ARCHITECTURES` is not set, pass explicit flags to the toolchain to use selected host architecture instead of letting the toolchain pick. Fixes: #21554