1234567891011121314151617181920212223242526 |
- 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
- 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.
|