You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
1.5 KiB
28 lines
1.5 KiB
CMAKE_CROSSCOMPILING
|
|
--------------------
|
|
|
|
Intended to indicate whether CMake is cross compiling, but note limitations
|
|
discussed below.
|
|
|
|
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
|
|
:generator:`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.
|