Swift源码编译

编译环境

  • 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-checkoutclone编译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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容