编译环境
macOS Big Sur 11.0.1
Xcode 12.2
Python 2.x
brew install cmake ninja
编译步骤
第一步:clone swift源码
如果想要编译最新的,可在官网上找分支,同时注意对应的Xcode版本要匹配。目前最新分支5.3.1.release,当前编译的也是这个版本。
首先,新建一个文件夹swift-source并确保当前在此目录下,然后执行如下命令:
git clone --branch swift-5.3.1-RELEASE https://github.com/apple/swift.git
第二步:update-checkout
首先确保当前在swift-source目录下,然后执行如下命令:
./swift/utils/update-checkout --tag swift-5.3.1-RELEASE --clone
注意:这一步非常重要,因为update-checkout会clone编译swift相关的库,不然那后面在编译swift源码的过程中一定会失败。
第三步:编译
编译过程中既可以使用ninja,也可以使用Xcode进行编译。但Xcode编译后的支持性不是特别的好,所以推荐使用ninja来编译。编译命令如下:
./swift/utils/build-script -r --debug-swift-stdlib --lldb
第四步:使用VSCode来调试Swfit源码
首先在VSCode中安装一个插件CodeLLDB

Snip20201211_1.png
接下来配置
JSON文件
Snip20201211_2.png
{
"version": "0.2.0",
"configurations": [
{
"type": "lldb",
"request": "launch",
"name": "Debug",
"program": "${workspaceFolder}/build/Ninja-RelWithDebInfoAssert+stdlib-DebugAssert/swift-macosx-x86_64/bin/swift",
"args": [],
"cwd": "${workspaceFolder}"
}
]
}
注意:上述program的文件路径和你编译的文件路径相同
run起来之后:

Snip20201211_3.png
过掉断点之后:

Snip20201211_6.png
可在上述红色框中编写
swift
看到下图红色框中的信息就表示运行成功,就可以在终端输入swift代码进行调试了~!

Snip20201211_7.png