什么是 Xcode 构建系统
Build system
是一套将源码和资源文件转为 APP 的工具。
比如,当我们进行点击下图的运行按钮(Run Button) (▶️)时,Xcode
就会调用 Build System
进行 APP 的构建过程 。
除此外,当我们使用命令行通过 xcodebuild
进行 build
、archive
等操作时,都依赖 build system
完成工作。
Xcode 目前支持两套
build system
, 因为New Build System
的构建速度更快和错误检测更多。所以,从Legacy Build System
切换到New Build System
后,可能会存在无法构建的情况。
如何切换构建系统
我们可以通过下面两图所示的方法切换 build system
:
什么是 cmake
CMake 是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。它能够输出各种各样的 makefile 或者 projec t 文件,能测试编译器所支持的 C++特性,类似 UNIX 下的 automake。
cmake 兼容性问题
从 cmake
3.19 版本开始,Xcode generator
会尝试默认启用 Xcode
的 New Build System
对于部分不支持 new build system
的项目,会出现下面的警告或者报错:
Policy CMP0114 is not set to NEW 警告:
|
|
构建 compiler-rt
报错:
|
|
兼容性解决方案
为了避免上面的警告或报错,我们可以通过添加参数 -T buildsystem=1
避免
示例:
经过实际测试,笔者添加参数 -T buildsystem=1
后,可以成功的编译 llvm
整个项目