Swift源码编译
最近在网上经常能看到源码编译的文章,整理一下关于源码编译的问题。
准备工作
硬件环境
Macbook Pro
(Retina, 15-inch, Mid 2015)- 磁盘空间**
60G
**
软件环境
- macOS Big Sur 11.2.3
- Xcode 12.4 (12D4e)
- Visual studio Code (1.55.2)
- Python 3.9.4
- cmake 3.20.1
- ninja 1.10.2
1 | brew install cmake ninja |
macOS,Xcode,swift最好用对应的版本,以防等待半个小时失败后骂骂咧咧
编译步骤
一、克隆 swift 源码
创建文件夹,并进入该文件夹
1
mkdir swift-source && cd swift-source
开始克隆代码
1
git clone --branch swift-5.3.2-RELEASE git@github.com:apple/swift.git
5.4版本克隆下来842M
二、拉取编译需要的依赖(git submodule)
切换到swift-source文件夹(注意看)
1
2# 如果在这个文件夹请忽略
cd swift-source执行脚本
1
./swift/utils/update-checkout --tag swift-5.4-RELEASE --clone
执行结果
- 如果出现Git错误请执行如下命令
1
git config --global http.postBuffer 524288000 && git config --global http.sslVerify "false"
- 文件大小大概3.67G左右(包含开始克隆的Swift源码)
三、编译
编译的过程中可以使用ninja
,也可以使用Xcode
。由于Xcode
需要和特定版本绑定,并且Xcode
编译之后的支持性不是特别好。推荐使用njnja
来作为编译工具。
使用ninja
编译(推荐)
1 | ./swift/utils/build-script -r --debug-swift-stdlib --lldb |
使用Xcode
编译
1 | ./swift/utils/build-script -x -R --debug-swift |
输出没有Error代表编译完成
编译是挺耗时并且烧设备。我的Mac温度到了95℃