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