CMAKE_CROSSCOMPILING
Предполагается, что указывает, выполняется ли кросс-компиляция с помощью CMake, но обратите внимание на ограничения, обсуждаемые ниже.
Эта переменная будет установлена в значение true CMake, если переменная 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.20/variable/CMAKE_CROSSCOMPILING.html