用于iOS(+ Catalyst)、watchOS、tvOS和macOS开发的CMake工具链文件,具有完整的模拟器支持和可切换选项!
ios-cmake
[此处省略徽章图片]
平台标志选项 (-DPLATFORM=标志)
- OS - 用于构建iOS(armv7, armv7s, arm64)-- 不推荐使用,建议使用OS64
- OS64 - 用于构建iOS(仅arm64)
- OS64COMBINED - 用于构建iOS和iOS模拟器(FAT库)(arm64, x86_64)
- SIMULATOR - 用于构建iOS模拟器32位(i386)-- 已弃用
- SIMULATOR64 - 用于构建iOS模拟器64位(x86_64)
- SIMULATORARM64 - 用于构建iOS模拟器64位(arm64)
- VISIONOS - 用于构建visionOS(arm64)-- 需要Apple Silicon
- VISIONOSCOMBINED - 用于构建visionOS和visionOS模拟器(FAT库)(arm64)-- 需要Apple Silicon
- SIMULATOR_VISIONOS - 用于构建visionOS模拟器(arm64)-- 需要Apple Silicon
- TVOS - 用于构建tvOS(arm64)
- TVOSCOMBINED - 用于构建tvOS和tvOS模拟器(arm64, x86_64)
- SIMULATOR_TVOS - 用于构建tvOS模拟器(x86_64)
- SIMULATORARM64_TVOS - 用于构建tvOS模拟器(arm64)
- WATCHOS - 用于构建watchOS(armv7k, arm64_32)
- WATCHOSCOMBINED - 用于构建watchOS和模拟器(armv7k, arm64_32, i386)
- SIMULATOR_WATCHOS - 用于构建watchOS模拟器(i386)
- SIMULATORARM64_WATCHOS - 用于构建watchOS模拟器(arm64)
- MAC - 用于构建macOS(x86_64)
- MAC_ARM64 - 用于在Apple Silicon上构建macOS(arm64)
- MAC_UNIVERSAL - 用于在x86_64和Apple Silicon(arm64)上组合构建macOS
- MAC_CATALYST - 用于在Mac上构建iOS(Catalyst, x86_64)
- MAC_CATALYST_ARM64 - 用于在Apple Silicon上的Mac上构建iOS(Catalyst, arm64)
- MAC_CATALYST_UNIVERSAL - 用于在x86_64和arm64上组合构建Mac上的iOS(Catalyst, x86_64, arm64)
使用示例
注意: 如果针对其他平台,请将-DPLATFORM
更改为适用的值。
cd example/example-lib
cmake -B build -G Xcode -DCMAKE_TOOLCHAIN_FILE=../../ios.toolchain.cmake -DPLATFORM=OS64
cmake --build build --config Release
这将为给定的PLATFORM构建库。在这种情况下,是针对arm64架构的iOS。
COMBINED选项
名为*COMBINED的选项(OS64COMBINED、TVOSCOMBINED和WATCHOSCOMBINED)将为给定平台构建完整的FAT库。 这些FAT库包含设备和模拟器的切片,使库的分发和使用更加简单!
示例:
cmake . -G Xcode -DCMAKE_TOOLCHAIN_FILE=../../ios.toolchain.cmake -DPLATFORM=OS64COMBINED
cmake --build . --config Release
cmake --install . --config Release # 构建组合库必需
注意: COMBINED选项_仅_在CMake 3.14+版本上使用Xcode生成器(-G Xcode)才能工作!
暴露的变量
XCODE_VERSION
- 检测到的Xcode版本号(不包括构建版本)。
SDK_VERSION
- 正在使用的SDK版本。
CMAKE_OSX_ARCHITECTURES
- 正在编译的架构(由PLATFORM生成)。
APPLE_TARGET_TRIPLE
- 由autoconf构建系统使用。
附加选项
-DENABLE_BITCODE=(BOOL)
- 默认禁用,指定TRUE或1以启用bitcode
-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
(见上文)为所有有效架构构建
要将所有平台组合到同一个FAT库中,可以构建任何"COMBINED"平台类型,或使用LIPO工具。有关如何使用LIPO组合库的更多信息在网上很容易找到。
感谢
- 🌟 衷心感谢所有为保持这个仓库最新做出贡献的人!你们的支持和协作在管理和跟踪所有变更方面都是无价的。非常感谢你们的帮助!🙏🎉