Файл инструментов Cmake для iOS (+ Catalyst), WatchOS, TVOS и MacOS Development с полной поддержкой симулятора и вариантами Togglable!
ПРИМЕЧАНИЕ . Измените -DPLATFORM на применимое значение, если нацеливаться на другую платформу.
cd example/example-lib
cmake -B build -G Xcode -DCMAKE_TOOLCHAIN_FILE=../../ios.toolchain.cmake -DPLATFORM=OS64
cmake --build build --config ReleaseЭто создаст библиотеку для данной платформы. В этом случае iOS с архитектурой ARM64.
Варианты, называемые *комбинированными (OS64COMBINED, TVOSCOMBINED и WATCHOSCOMBINED) будут создавать полные жирные библиотеки для данной платформы. Эти жирные библиотеки включают в себя срезы как для устройства, так и для симулятора, что делает распределение и использование библиотеки гораздо проще!
Пример:
cmake . -G Xcode -DCMAKE_TOOLCHAIN_FILE=../../ios.toolchain.cmake -DPLATFORM=OS64COMBINED
cmake --build . --config Release
cmake --install . --config Release # Necessary to build combined libraryПримечание . Объединенные параметры работают только с генератором Xcode (-g Xcode) на версиях Cmake 3.14+!
XCODE_VERSION - номер версии (не включая версию сборки) обнаруженного XCode.
SDK_VERSION - Версия SDK используется.
CMAKE_OSX_ARCHITECTURES - архитектуры, составленные для (сгенерированные с платформы).
APPLE_TARGET_TRIPLE - используется системами сборки AutoConf.
-DENABLE_BITCODE=(BOOL) - по умолчанию отключено, укажите true или 1, чтобы включить биткод
-DENABLE_ARC=(BOOL) - включено по умолчанию, укажите false или 0, чтобы отключить ARC
-DENABLE_VISIBILITY=(BOOL) - по умолчанию отключено, укажите true или 1, чтобы включить поддержку визуальности символа
-DENABLE_STRICT_TRY_COMPILE=(BOOL) - по умолчанию отключено, укажите true или 1, чтобы включить строгие проверки компилятора (будет запускать лингер на всех проверках компилятора при необходимости)
-DARCHS=(STRING) - Допустимые значения: ARMV7, ARMV7S, ARM64, I386, x86_64, ARMV7K, ARM64_32. По умолчанию он будет построен для всех действительных архитектур на основе -DPLATFORM (см. Выше)
Чтобы объединить все платформы в одну и ту же живую библиотеку, либо создайте любой из « комбинированных » типов платформ, либо используйте инструмент Lipo. Более подробная информация о том, как объединить библиотеки с Lipo, легко доступна в сети.