Spec-Zone.ru › CMake 3.22

CMAKE_CROSSCOMPILING

Предполагается, что он указывает, выполняется ли кросс-компиляция с помощью CMake, но следует учитывать ограничения, обсуждаемые ниже.

Эта переменная будет установлена CMake в значение true, если переменная CMAKE_SYSTEM_NAME была установлена вручную (т. е. в файле инструментальной цепочки или как запись в кэше из команды cmake). В большинстве случаев, ручная установка CMAKE_SYSTEM_NAME выполняется только при кросс-компиляции, поскольку в противном случае ей будет присвоено то же значение, что и CMAKE_HOST_SYSTEM_NAME, если она не установлена вручную, что верно для случая не кросс-компиляции. В случае, если CMAKE_SYSTEM_NAME установлена вручную в том же значении, что и CMAKE_HOST_SYSTEM_NAME, тогда CMAKE_CROSSCOMPILING все равно будет установлено в true.

Еще один момент, о котором следует знать, заключается в том, что сборки, нацеленные на платформы Apple, отличные от macOS, обрабатываются по-другому по сравнению с другими сценариями кросс-компиляции. Вместо того, чтобы полагаться на CMAKE_SYSTEM_NAME для выбора целевой платформы, сборки для устройств Apple используют CMAKE_OSX_SYSROOT для выбора соответствующего SDK, что косвенно определяет целевую платформу. Кроме того, при использовании генератора Xcode, разработчики могут переключаться между сборками устройства и симулятора во время сборки, а не иметь единственный выбор на этапе конфигурации, поэтому концепция того, является ли сборка кросс-компиляцией, более сложна. Поэтому использование CMAKE_CROSSCOMPILING не рекомендуется для проектов, нацеленных на устройства Apple.

© 2000–2021 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.22/variable/CMAKE_CROSSCOMPILING.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API