Help: Clarify meaning of CMAKE_SYSTEM_PROCESSOR

On Windows the value may not match the compiler's target architecture.
Update the documentation to state this explicitly.

Issue: #15170
This commit is contained in:
Brad King
2021-01-26 11:00:44 -05:00
parent 1380e611e1
commit 5a6379f1fd

View File

@@ -1,8 +1,13 @@
CMAKE_SYSTEM_PROCESSOR
----------------------
The name of the CPU CMake is building for.
When not cross-compiling, this variable has the same value as the
:variable:`CMAKE_HOST_SYSTEM_PROCESSOR` variable. In many cases,
this will correspond to the target architecture for the build, but
this is not guaranteed. (E.g. on Windows, the host may be ``AMD64``
even when using a MSVC ``cl`` compiler with a 32-bit target.)
This variable is the same as :variable:`CMAKE_HOST_SYSTEM_PROCESSOR` if
you build for the host system instead of the target system when
cross compiling.
When cross-compiling, a :variable:`CMAKE_TOOLCHAIN_FILE` should set
the ``CMAKE_SYSTEM_PROCESSOR`` variable to match target architecture
that it specifies (via :variable:`CMAKE_<LANG>_COMPILER` and perhaps
:variable:`CMAKE_<LANG>_COMPILER_TARGET`).