-
Notifications
You must be signed in to change notification settings - Fork 136
Description
As of version 3.14, cmake has added support for cross compiling iOS (see https://cmake.org/cmake/help/latest/release/3.14.html?highlight=cross#platforms).
This means that -miphone-version-min style parameters get added automatically. This also means that currently when using cmake-rs, these parameters are being added twice, and often with conflicting values.
I've found that in order the support the new system, the following CMAKE variables need to be set:
CMAKE_SYSTEM_NAME(Set toiOS)CMAKE_OSX_ARCHITECTURES(Set to one of:arm64,armv7,armv7s,i386, orx86_64)CMAKE_OSX_DEPLOYMENT_TARGET(Could likely be pulled from theIPHONEOS_DEPLOYMENT_TARGETenv variable)CMAKE_OSX_SYSROOT(Set to either:iphoneosoriphonesimulator)
The target triplets for iOS are:
aarch64-apple-iosarmv7-apple-iosarmv7s-apple-iosi386-apple-iosx86_64-apple-ios
Additionally, I found that cmake-rs (via cc-rs) is setting the following compiler flags which are not added by cmake:
-fPIC-fembed-bitcode
Note: cmake 3.14 also added support for tvOS and watchOS, but since I don't support them in my own app, I don't know what's required to support them.