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