今天和大家讲讲怎么样将github中的swift源码编译到Xcode可以打开的项目:
1,安装cmake 去官网下载cmake,我下的是目前的最新版本cmake-3.12.0-rc3-Darwin-x86_64.tar.gz,如下图:
cmake官网下载图
下载完成以后,接着就解压,会看到这个玩意儿:
cmake解压后
把这个拷贝到应用程序目录下面,接着打开这个应用程序,找到tools->how to install...这一行,会提示你怎样操作,我选择的是第二个:
cmake tools
cmake
接着可以打开终端了,复制上图画圈的sudo这一行到终端执行一下,好啦,cmake客户端和终端命令都搞定了!
2,安装ninja(从git下载)
首先创建一个文件夹,并定位到这个文件夹下,如下:
mkdir -p ~/ninja && cd ~/ninja
下载安装包:
git clone https://github.com/martine/ninja
进入ninja:
cd ninja
编译ninja:
./configure.py --bootstrap
这里我报了一个错:
编译ninja错误
这个错误不要慌,是缺少re2c,这个时候只要安装好re2c就行了,接下来说说一下如何安装re2c:
进入到这个re2c官网,下载最新的包:我下载的是re2c-1.0.3.tar.gz
下载完成以后解压,然后用命令行定位到解压后的文件夹: cd re2c路径
也可以打开这个文件夹看一下里面的内容,应该差不多是这个样子(可以查看对应的readme文件,也可以跟着我的步骤来):
re2c
这个时候在命令行这样做:
./configure
等待命令执行完毕再输入:
make
等待执行完毕再输入:
make install
至此,如果一切顺利,re2c就安装完毕了;回头再来安装ninja
cd 定位到你刚才的ninja文件夹:我的是:cd ~/ninja/ninja
这个时候在命令行输入:./configure.py --bootstrap,如果一切顺利,就安装成功了。这个时候可以在终端输入:./ninja --version 如果终端能显示版本就说明正常了。
ninja安装成功
但是有个问题是,这个命令必须制定完整的路径或者像刚才一样在当前目录才可以执行,这个时候我们如果想在任何路径下只要执行 ninja --version都能看到版本就好了,此时我们可以配置环境变量:使用如下命令(如果在~目录下有.bash_profile这个文件就不用创建):
touch ~/.bash_profile (创建.bash_profile)
用vi 编辑器打开:
vi ~/.bash_profile
在vi编辑器中进行编辑(按i开启编辑),输入以下内容:
export NINJA_HOME=ninja的路径 我这里是: ~/ninja/ninja
export PATH=$PATH:$NINJA_HOME
编辑完成按esc退出编辑,然后按 :wq 保存并退出编辑器
用这个命令让环境变量生效: source ./.bash_profile
这样环境变量就设置成功了,我们测试一下,
cd /
ninja --version
你会看到出现了ninja的版本号
至此ninja安装完毕。 附上mac配置环境变量的方法:
3,下载swift在github上的仓库:可以按照git上的操作的操作进行,这里我说说我自己的操作
获取source和related project
首先download项目,存储在你自己定义的文件夹里面,我是下载到:~/Deskdop/swift-source 里面:
下载成功以后,就进入到刚才那个文件夹,然后解压,再进入解压后的目录: 执行 utils/update-checkout --clone 这个命令(https的方式),安静的等待执行完毕(时间会有一点长,泡一杯咖啡吧),当然也可以用git ssh的方式操作,只不过需要添加github密钥(参考添加密钥),这一步完成以后就开始编译swift源码了。
编译swift
至此等待编译完毕。
编译的结果
作者:bekin
链接:https://www.jianshu.com/p/d717f19f5d6a