mirror of
https://github.com/reactos/CMake.git
synced 2024-12-02 00:26:18 +00:00
Merge topic 'docs_cmake_crosscompiling'
60febda4
Help: Explain meaning and limitations of CMAKE_CROSSCOMPILING
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1672
This commit is contained in:
commit
856dc73e02
@ -1,8 +1,26 @@
|
||||
CMAKE_CROSSCOMPILING
|
||||
--------------------
|
||||
|
||||
Is CMake currently cross compiling.
|
||||
Intended to indicate whether CMake is cross compiling, but note limitations
|
||||
discussed below.
|
||||
|
||||
This variable will be set to true by CMake if CMake is cross
|
||||
compiling. Specifically if the build platform is different from the
|
||||
target platform.
|
||||
This variable will be set to true by CMake if the :variable:`CMAKE_SYSTEM_NAME`
|
||||
variable has been set manually (i.e. in a toolchain file or as a cache entry
|
||||
from the :manual:`cmake <cmake(1)>` command line). In most cases, manually
|
||||
setting :variable:`CMAKE_SYSTEM_NAME` will only be done when cross compiling,
|
||||
since it will otherwise be given the same value as
|
||||
:variable:`CMAKE_HOST_SYSTEM_NAME` if not manually set, which is correct for
|
||||
the non-cross-compiling case. In the event that :variable:`CMAKE_SYSTEM_NAME`
|
||||
is manually set to the same value as :variable:`CMAKE_HOST_SYSTEM_NAME`, then
|
||||
``CMAKE_CROSSCOMPILING`` will still be set to true.
|
||||
|
||||
Another case to be aware of is that builds targeting Apple platforms other than
|
||||
macOS are handled differently to other cross compiling scenarios. Rather than
|
||||
relying on :variable:`CMAKE_SYSTEM_NAME` to select the target platform, Apple
|
||||
device builds use :variable:`CMAKE_OSX_SYSROOT` to select the appropriate SDK,
|
||||
which indirectly determines the target platform. Furthermore, when using the
|
||||
Xcode generator, developers can switch between device and simulator builds at
|
||||
build time rather than having a single choice at configure time, so the concept
|
||||
of whether the build is cross compiling or not is more complex. Therefore, the
|
||||
use of ``CMAKE_CROSSCOMPILING`` is not recommended for projects targeting Apple
|
||||
devices.
|
||||
|
Loading…
Reference in New Issue
Block a user