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–2026 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/latest/variable/CMAKE_CROSSCOMPILING.html